3 条题解

  • 1
    @ 2025-8-20 15:24:35
    #include<iomanip>
    #include<cmath>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    const int N=1e2+8;
    const int INF=0x3f3f3f3f;
    using namespace std;
    int m,n,ans;
    char a[N][N];
    int sx,sy;
    int dx[]={0,0,1,-1}; 
    int dy[]={1,-1,0,0}; 
    bool check(int x,int y)
    {
    	if(x>=0&&x<n&&y>=0&&y<m&&a[x][y]!='0')
    		return 1;
    	return 0;
    }
    void dfs(int x,int y) 
    {
    	a[x][y]='0';
    	for(int i=0;i<=3;i++)
    	{
    		int xx=x+dx[i];
    		int yy=y+dy[i];
    		if(check(xx,yy))
    			dfs(xx,yy);
    	}
    }
    int main()
    {
    	cin>>n>>m;
    	for(int i=0;i<n;i++)
    		cin>>a[i];
    	for(int i=0;i<n;i++)
    		for(int j=0;j<m;j++)
    		{
    			if(a[i][j]!='0')
    			{
    				ans++;
    				dfs(i,j);
    			}
    		}
    		cout<<ans;
    	return 0;
    }
    
    

    信息

    ID
    1309
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    递交数
    179
    已通过
    77
    上传者