1 条题解

  • 0
    @ 2025-3-22 16:04:51
    #include <bits/stdc++.h>
    using namespace std;
    int d[8][2]={{-1,-1},{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1}} ;
    char a[131][131];
    int n,m,ans=0;
    struct Node
    {
    	int x,y;
    };
    void bfs(queue<Node> q)
    {
    	while(!q.empty())
    	{
    		Node cur=q.front();
    		q.pop();
    		for(int i=0;i<8;i++)
    		{
    			int dx=cur.x+d[i][0];
    			int dy=cur.y+d[i][1];
    			if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&a[dx][dy]=='W') 
    			{
    				a[dx][dy]='.';
    				Node newNode={dx,dy};
    				q.push(newNode);
    			}
    		}
    	}
    }
    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')
    			{
    				queue<Node> q;
    				Node node={i,j};
    				q.push(node);
    				bfs(q);
    				ans++;
    			}
    	cout<<ans;
    	return 0;
    }
     
    
    
    • 1

    信息

    ID
    310
    时间
    1000ms
    内存
    64MiB
    难度
    9
    标签
    递交数
    36
    已通过
    4
    上传者