你的反例:
```pascal
3
0 1 0
1 0 1
0 1 0
```
你输出了:
```pascal
0 1 2
1 2 1
0 1 2
```
by w23c3c3 @ 2018-08-10 08:52:50
我找不到错误,就只能贴代码了:
```cpp
#include <bits/stdc++.h>
using namespace std;
int n,a[32][32],i,j;
void dfs(int x, int y){
if(x>=0&&x<=n+1&&y>=0&&y<=n+1){
if(a[x][y]==1||a[x][y]==3)return;
else{a[x][y]=3;
dfs(x+1,y);dfs(x-1,y);
dfs(x,y+1);dfs(x,y-1);}
}
}
int main(){
cin>>n;
for(i=1;i<=n;i++)for(j=1;j<=n;j++)cin>>a[i][j];
dfs(0, 0);
for(i=1;i<=n;i++)for(j=1;j<=n;j++)if(a[i][j]==3)a[i][j]=0;else if(a[i][j]==0)a[i][j]=2;
for(i=1;i<=n;++i,printf("\n"))
for(j=1;j<=n;printf("%d ",a[i][j]),++j) ;
return 0;
}
```
哦,想起来了,我的是深搜,你的是广搜……
by w23c3c3 @ 2018-08-10 08:54:36
@[w23c3c3](/space/show?uid=109942) 明白了多谢
by qingtianyu @ 2018-08-10 09:16:01