用dfs写的,为什么不对,求教
查看原帖
用dfs写的,为什么不对,求教
699915
tjm20101204楼主2022/11/6 17:13
#include<bits/stdc++.h> 
#define tjm 109
using namespace std;
int n,m;
int a[tjm][tjm];
int cnt;
void dfs(int x,int y)
{
	if(x>m||x<1||y>n||y<1||a[x][y]==0) return;
	a[x][y]=0;
	dfs(x,y-1);
	dfs(x,y+1);
	dfs(x-1,y);
	dfs(x+1,y);
}
int main()
{
	cin>>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])
			{
				cnt++;
				dfs(i,j);
			}
		}
	cout<<cnt;
	return 0;
}
//谢谢大佬
2022/11/6 17:13
加载中...