10分求助
查看原帖
10分求助
627304
Xujingyang楼主2023/10/26 13:10
#include<bits/stdc++.h>
using namespace std;
int zb[102][102];
int a,b,ans,xt,yt,asdf;
queue<int> dl;
void DNA (int x,int y){
	if (zb[x-1][y])
	{
		zb[x-1][y]=0;
		dl.push(x-1);
		dl.push(y);
	};
	if (zb[x][y-1])
	{
		zb[x][y-1]=0;
		dl.push(x);
		dl.push(y-1);
	};
	if (zb[x][y+1])
	{
		zb[x][y+1]=0;
		dl.push(x);
		dl.push(y+1);
	};
	if (zb[x+1][y])
	{
		zb[x+1][y]=0;
		dl.push(x+1);
		dl.push(y);
	};
};
int main(){
	cin>>a>>b;asdf=getchar()-'0';
	for (int i=1;i<=a;i++)
	{
		for (int j=1;j<=b;j++)
		{
			zb[i][j]=getchar()-'0';
		}
		asdf=getchar()-'0';
	}
	for (int i=1;i<=a;i++)
	{
		for (int j=1;j<=b;j++)
		{
			if (zb[i][j])
			{
				ans++;
				dl.push(i);
				dl.push(j);
				zb[i][j]=0;
				DNA(i,j);
				while (!dl.empty())
				{
					xt=dl.front();
					dl.pop();
					yt=dl.front();
					dl.pop();
					DNA(xt,yt);
				}
			}
		}
	}
	cout<<ans;
	return 0;
}

我为什么寄掉了?

2023/10/26 13:10
加载中...