蒟蒻样例输出21求助
查看原帖
蒟蒻样例输出21求助
658497
letianJOE楼主2022/10/2 19:47
#include<bits/stdc++.h>
using namespace std;
char a[105][105];
bool check[105][105];
int n,m,sum=0;
int dx[4]={0,0,-1,1},dy[4]{-1,1,0,0};
void dfs(int x,int y){
	check[x][y]=false;
	int xx,yy;
	for(int i=0;i<4;i++)
	{
		xx=x+dx[i];
		yy=y+dy[i];
		if(xx>0 && xx<=n && yy>0 && yy<=m)
			continue;
		if(check[xx][yy]==1)
			dfs(xx,yy);
	}
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
		{
            scanf("%1d",&a[i][j]);
            if(a[i][j]!=0) check[i][j]=true;
    	}
    for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
    		if(check[i][j]==1)
			{
				sum++;
				dfs(i,j);
    		}
    cout<<sum;
    return 0;
}

这是代码,为什么输出样例输出21? 逻辑上没错,手推也没啥问题。

2022/10/2 19:47
加载中...