32分求助

P1162 填涂颜色

没事了过了,玄学 ``` #include<bits/stdc++.h> using namespace std; struct F{ int x,y; }; queue<F>f; int a[100][100],n; const int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}}; int main(){ cin >> n; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ scanf("%d",&a[i][j]); } } for(int i=0;i<=n+1;i++){ for(int j=0;j<=0+1;j++){ if(i==0||i==n+1||j==0||j==n+1&&a[i][j]==0){ a[i][j]=3; f.push({i,j}); while(!f.empty()){ for(int m=0;m<4;m++){ int tx=f.front().x+dir[m][0]; int ty=f.front().y+dir[m][1]; if(tx>=0&&tx<=n+1&&ty>=0&&ty<=n+1&&a[tx][ty]==0){ a[tx][ty]=3; f.push({tx,ty}); } } f.pop(); } } } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(a[i][j]==0)printf("2 "); else if(a[i][j]==1)printf("1 "); else printf("0 "); } printf("\n"); } return 0; } ```
by qwq666666 @ 2022-11-03 23:28:43


|