为什么是亖循环啊
查看原帖
为什么是亖循环啊
553772
GLESENA楼主2023/8/2 09:24

#include<bits/stdc++.h>
using namespace std;
int num,n,m;
char a[1001][1001];
void dfs(int x,int y)
{
	a[x][y]='0';
	if(0<x+1<=n&&a[x+1][y]!='0')
	{
		dfs(x+1,y);
	}
	if(0<y-1<=m&&a[x][y-1]!='0')
	{
		dfs(x,y-1);
	}
	if(0<x-1<=n&&a[x-1][y]!='0')
	{
		dfs(x-1,y);
	}
	if(0<y+1<=m&&a[x][y+1]!='0')
	{
		dfs(x,y+1);
	}
	return ;
}
int main()
{
	int ship;
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>a[i][j];
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			if(a[i][j]!='0')
			{
				dfs(i,j);
				ship++;
			}
		}
	}
	cout<<ship;
	return 0;
}

2023/8/2 09:24
加载中...