深搜 70;
查看原帖
深搜 70;
629451
luozichen081115楼主2022/5/24 18:18
#include<bits/stdc++.h>
using namespace std;
char sc[1004][1004];
int m,n,ss[1004][1004],h[5]={0,1,-1,0,0},l[5]={0,0,0,1,-1},jg=1,dt=0,dw=1,s1,s2;
bool jsg[1004][1004];
void bfs(int k1,int k2)
{
	for(int i=1;i<=4;i++)
	{
		int kn1=k1+h[i],kn2=k2+l[i];
		if(kn1<=n&&kn1>=1&&kn2<=n&&kn2>=1)
		{
			if(ss[kn1][kn2]==0)
			{
				if(ss[k1][k2]==1&&jsg[kn1][kn2]==false)
				{
					/*cout<<"("<<kn1<<","<<kn2<<")"<<" ";*/
					jsg[kn1][kn2]=true;
					jg++;
					bfs(kn1,kn2);
				}
			}
			if(ss[kn1][kn2]==1)
			{
				if(ss[k1][k2]==0&&jsg[kn1][kn2]==false)
				{
					/*cout<<"("<<kn1<<","<<kn2<<")"<<" ";*/
					jsg[kn1][kn2]=true;
					jg++;
					bfs(kn1,kn2);
				}
			}
			
		}
	}
}
int main()
{	
	cin>>n>>m;
	for(int x=1;x<=n;x++)
	{
		for(int y=1;y<=n;y++)
		{
			cin>>sc[x][y];
			ss[x][y]=int(sc[x][y]-'0');
		}
	}
	for(int p=1;p<=m;p++)
	{
		cin>>s1>>s2;
		jsg[s1][s2]=true;
		bfs(s1,s2);
		cout<<jg<<endl;
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=n;j++)
			{
				jsg[i][j]=false;
			}
		}
		jg=1;
	}
}
2022/5/24 18:18
加载中...