0分,求助!

P1162 填涂颜色

```c #include<bits/stdc++.h> using namespace std; struct pos { int x; int y; }; bool mark[32][32]; int pic[32][32],dx[]= {0,0,1,-1},dy[]= {1,-1,0,0},n; queue<pos>q; void bfs(int x,int y) { int tx,ty; q.push(pos{x,y}); mark[x][y]=true; while(!q.empty()) { tx=q.front().x; ty=q.front().y; q.pop(); for(int i=0; i<4; i++) { if(tx+dx[i]<0||ty+dy[i]<0||tx+dx[i]>n+1||ty+dy[i]>n+1||mark[tx+dx[i]][ty+dy[i]])continue; q.push(pos{tx+dx[i],ty+dy[i]}); mark[tx+dx[i]][ty+dy[i]]=true; } } } int main() { memset(pic,0,sizeof(pic)); memset(mark,0,sizeof(mark)); cin>>n; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cin>>pic[i][j]; mark[i][j]=pic[i][j]; } } bfs(0,0); for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(mark[i][j])cout<<pic[i][j]<<" "; else cout<<"2"<<" "; } cout<<endl; } } ```
by 123huchenghao @ 2024-06-28 18:30:38


*非常感谢!* @[123huchenghao](/user/1380409)
by yanhaoming @ 2024-06-28 20:31:18


|