1 条题解

  • 0
    @ 2025-12-25 19:35:45
    #include<bits/stdc++.h>
    using namespace std;
    int n,m,c=0;
    char a[110][110];
    int fx[9]={0,0,1,0,-1,1,1,-1,-1};
    int fy[9]={0,1,0,-1,0,-1,1,-1,1};
    void dfs(int x,int y)
    {
    	a[x][y]='.';
    	int tx,ty;
    	for(int i=1;i<=8;i++)
    	{
    		tx=x+fx[i];
    		ty=y+fy[i];
    		if(a[tx][ty]=='W')
    		{
    			dfs(tx,ty);
    		}
    	} 
    }
    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]=='W')
    			{
    				c++;
    				dfs(i,j);
    			}
    		}
    	}
    	cout<<c;
    	return 0;
    }
    
    • 1

    信息

    ID
    500
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    (无)
    递交数
    118
    已通过
    73
    上传者