求dalao指导,急!
查看原帖
求dalao指导,急!
484439
xiaoqinglang11楼主2022/4/26 13:47

直接给代码了

#include<bits/stdc++.h>
#define MAXN 1005
using namespace std;
int n,m;
int a[MAXN][MAXN];
bool w[MAXN][MAXN];
struct xy
{
	int x,y;
};
xy walk[5]={{0,0},{1,0},{-1,0},{0,1},{0,-1}};
int main()
{
	scanf("%d%d",&n,&m);
	char t;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			cin>>t;
			a[i][j]=t=='1';
		}
	for(int p=1;p<=m;p++)
	{
		int x_,y_;
		scanf("%d%d",&x_,&y_);
		memset(w,0,sizeof(w));
		w[x_][y_]=1; 
		queue<xy>q;
		q.push({x_,y_});
		while(!q.empty())
		{
			int tx=q.front().x;
			int ty=q.front().y;
			w[tx][ty]=1;
			for(int i=1;i<=4;i++)
			{
				int xx=tx+walk[i].x;
				int yy=tx+walk[i].y;
				if(w[xx][yy]||a[xx][yy]==a[tx][ty])
					continue;
				q.push({xx,yy});
			}
			q.pop();
		}
		int cnt=0;
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
				if(w[i][j])
					cnt++;
		printf("%d\n",cnt);
	}
	return 0;
}

7WAWA, 3TT

运行结果

2022/4/26 13:47
加载中...