32分求助!!!

P1162 填涂颜色

第一格貌似不一定不在范围内呢······
by An__Apple @ 2024-06-30 15:49:23


@[lsy18653707830](/user/1153724) 搜索范围有误,第10行和第20行: ```cpp #include<iostream> using namespace std; int a[10002][10002],t[4][2]= {-1,0,1,0,0,-1,0,1},n; struct bfs { int x,y; }; int main() { bfs qq[10002]; int head=1,tail=2; qq[1].x=qq[1].y=0; // 1 - 改为从(0,0)开始 cin>>n; for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { cin>>a[i][j]; } } while(head<tail) { for(int i=0; i<4; i++) { int tx=qq[head].x+t[i][0], ty=qq[head].y+t[i][1]; if(tx<0||tx>n+1||ty<0||ty>n+1) continue; // 2 - 边界改为n+1 if(a[tx][ty]==0) { a[tx][ty]=-1; qq[tail].x=tx; qq[tail].y=ty; tail++; } } head++; } for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { if(a[i][j]==-1) { cout<<0<<" "; } else if(a[i][j]==0) { cout<<2<<" "; } else { cout<<1<<" "; } } cout<<endl; } return 0; } ```
by Nail9 @ 2024-06-30 16:27:03


~~虽然我不知道咋说~~ 但我还是把我的AC代码给你吧 ```cpp #include<bits/stdc++.h> using namespace std; int n,a[40][40]; int dx[4]={0,0,-1,1}; int dy[4]={-1,1,0,0}; void dfs(int x,int y) { a[x][y]=2; for(int i=0;i<4;i++) { int nx=dx[i]+x; int ny=dy[i]+y; if(a[nx][ny]==0 && nx>=0 && nx<=n+1 && ny>=0 && ny<=n+1) dfs(nx,ny); } } int main() { cin>>n; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) cin>>a[i][j]; } dfs(0,0); for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(a[i][j]==2) a[i][j]=0; else if(a[i][j]==0) a[i][j]=2; cout<<a[i][j]<<" "; } cout<<endl; } return 0; } ```
by huyinuo @ 2024-06-30 16:30:34


@[huyinuo_ikun](/user/1361758) 南无阿弥陀佛 希望可以帮到你 5年级的我压根看不出错误 ~~但头文件有问题吧~~
by huyinuo @ 2024-06-30 16:34:29


已AC,感谢大佬(已关注)
by lsy18653707830 @ 2024-06-30 16:47:18


|