突然觉得我好拉啊,又运行不了了
查看原帖
突然觉得我好拉啊,又运行不了了
1038838
张一2010楼主2024/3/6 17:07
#include<iostream>
using namespace std;
int n,map[32][32];
int fx[4]={0,1,0,-1},fy[4]={1,0,-1,0};
void bfs(int x,int y,int pd){
	int q[30*30-8][2]/*x,y*/,head=1,tail=1;
	q[1][0]=x,q[1][1]=y;
	while(head<=tail){
		for(int i=0;i<4;i++){
			int nox=q[head][0]+fx[i],noy=q[head][1]+fy[i];
			if(map[nox][noy]==0) map[nox][noy]=pd,q[++tail][0]=nox,q[tail][1]=noy;
		}head++;
	}
}

int mian(){
	cin>>n;
	for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)cin>>map[i][j];
	for(int i=1;i<=n;i++){
		if(map[1][i]==0){
			map[1][i]=3;
			bfs(1,i,3);
		}
		if(map[n][i]==0){
			map[n][i]=3;
			bfs(n,i,3);
		}
	}
	for(int i=2;i<n;i++){
		if(map[i][1]==0){
			map[i][1]=3;
			bfs(i,1,3);
		}
		if(map[i][n]==0){
			map[i][n]=3;
			bfs(i,n,3);
		}
	}
	for(int i=1;i<=n;i++)
	for(int j=1;j<=n;j++)
		if(map[i][j]==0){
			map[i][j]=2;
			bfs(i,j,2);
			for(int x=1;i<=n;i++){
				for(int y=1;j<=n;j++){
					if(map[x][y]==3) cout<<0<<" ";
					else cout<<map[x][y]<<" ";
				}cout<<"\n";
			}
			return 0;
		}
}

2024/3/6 17:07
加载中...