。。。
查看原帖
。。。
1343308
IAKIOI66666楼主2024/7/29 14:14

0′ 求助,谢谢!!!

#include<iostream>
#include<queue>
#include<cstring>
using namespace std;
struct node{
	int x,y;
};
queue<node> q;
int n,m,x,y,a[1050][1050];
string s;
int xx[4]={0,0,1,-1},yy[4]={1,-1,0,0};
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>s;
		for(int j=0;j<n;j++)
			a[i][j+1]=s[i]-'0';
	}
	for(int i=1;i<=m;i++)
	{
		cin>>x>>y;
		int z=a[x][y],ans=0;
		q.push({x,y});
		while(!q.empty())
		{
			node b=q.front();
			for(int i=0;i<=3;i++)
			{
				int x1=b.x+xx[i],y1=b.y+yy[i];
				if(x1<1||y1<1||x1>n||y1>n||z==a[x1][y1]||a[x1][y1]==2)continue;
				a[x1][y1]=2,q.push({x1,y1});ans++;
			}
			q.pop();
		}
		cout<<ans+1<<endl;
	} 
    return 0;
}
2024/7/29 14:14
加载中...