求助……
查看原帖
求助……
993175
a_gold_TomAndJerry楼主2024/1/21 09:29

题目链接:P1162 填涂颜色

代码:

#include<bits/stdc++.h>
using namespace std;
struct node{
	int xxx;
	int yyy;
}q[961];
int n,a[31][31],head=1,tail=1;
int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};
void BFS(int x,int y){
	q[tail].xxx=x;
	q[tail].yyy=y;
	if(a[x][y]==2) a[x][y]=0;
	tail++;
	while(head<tail){
		for(int i=0;i<4;i++){
			int xx=q[head].xxx+dx[i];
			int yy=q[head].yyy+dy[i];
			if(xx>=1&&xx<=n&&yy>=1&&yy<=n){
				if(a[xx][yy]==2){
					q[tail].xxx=xx;
					q[tail].yyy=yy;
					a[xx][yy]=0;
					tail++;
				}
			}
		}
		head++;
	}
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
			if(a[i][j]==0) a[i][j]=2;
		}
	}
	BFS(1,1);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cout<<a[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
}

只有两个AC,为什么?

2024/1/21 09:29
加载中...