改了一点 没用
```
#include <iostream>
#include <queue>
using namespace std;
int n,m,k[35][35];
struct node{
int x,y;
};
bool visit[35][35];
int mx[4]={1,-1,0,0};
int my[4]={0,0,1,-1};
bool q[35][35];
void bfs(int sx,int sy){
queue <node> que;
node head;
head.x=sx;
head.y=sy;
visit[sx][sy]=1;
que.push(head);
while(!que.empty()){
node f=que.front();
que.pop();
for(int i = 0;i<4;i++){
int tx = f.x + mx[i];
int ty = f.y + my[i];
if(!visit[tx][ty] && k[tx][ty]==0 && tx<=n && tx>=1 && ty<=n && ty>=1){
node n;
n.x=tx;
n.y=ty;
q[tx][ty]=1;
visit[tx][ty]=1;
que.push(n);
}
}
}
}
int main(){
cin>>n;
for(int i = 1;i<=n;i++){
for(int j = 1;j<=n;j++){
cin>>k[i][j];
}
}
bfs(1,1);
q[1][1]=1;
for(int i = 1;i<=n;i++){
for(int j = 1;j<=n;j++){
if(q[i][j] || k[i][j])
cout<<k[i][j];
else{
cout<<2;
}
if(j<n)cout<<' ';
}
cout<<endl;
}
return 0;
}
```
by OutsideR_ @ 2021-05-05 18:16:55