32分求助!!!
查看原帖
32分求助!!!
1153724
lsy18653707830楼主2024/6/30 15:37
#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=1;
	qq[1].y=1;
	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||ty<0||ty>n) continue;
			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;
}
2024/6/30 15:37
加载中...