全re求救,样例过了
查看原帖
全re求救,样例过了
917301
xwx123456楼主2023/12/16 16:44
#include <bits/stdc++.h>
using namespace std;
int a[35][35];
int bx[4]= {1,-1,0,0},by[4]= {0,0,1,-1},n;
struct node {
	int x,y;
};
queue<node> q;
int bfss(int x1,int y1) {
	q.push({x1,y1});
	a[x1][y1]=2;
	while(!q.empty()) {
		int xx=q.front().x,yy=q.front().y;
		q.pop();
		for(int i=0; i<4; i++) {
			int nx=xx+bx[i],ny=yy+by[i];
			if(nx<1||nx>n||ny<1||ny>n||a[nx][ny]!=0) {
				continue;
			}
			q.push({nx,ny});
			a[nx][ny]=2;
		}
	}
}
int main() {
	cin>>n;
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=n; j++) {
			cin>>a[i][j];
		}
	}
	int x1,y1,flag=0;
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=n; j++) {
			if(a[i][j]==1&&flag==0) {
				x1=i;
				y1=j;
				flag=1;
			}
		}
	}
	bfss(x1+1,y1+1);
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=n; j++) {
			cout<<a[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
}
2023/12/16 16:44
加载中...