1 条题解

  • 0
    @ 2023-4-20 19:56:39
    #include<bits/stdc++.h>
    using namespace std;
    struct node{
    	int x;
    	int y;
    }t,p;
    char a[101][101];
    int book[101][101];
    int next[4][2]={{0,-1},{-1,0},{0,1},{1,0}};
    int tot,n,m;
    void bfs(int i,int j){
    	book[i][j]=1;
    	queue<node>q;
    	t.x=i;
    	t.y=j;
    	q.push(t);
    	while(!q.empty()){
    		t=q.front();
    		for(int k=0;k<=4;k++){
    			int tx=t.x+next[k][0];
    			int ty=t.y+next[k][1];
    			if(tx<1||tx>n||ty<1||ty>m){
    				continue;
    			}
    			if(book[tx][ty]==0&&a[tx][ty]=='W'){
    				book[tx][ty]=1;
    				p.x=tx;
    				p.y=ty;
    				q.push(p);
    			}
    		}
    		q.pop();
    	}
    }
    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(book[i][j]==0&&a[i][j]=='W'){
         	     	bfs(i,j);
         	     	tot++;
    			}
    		}
    	}
    	cout<<tot;
    	return 0;
    }
    
    
    • 1

    信息

    ID
    431
    时间
    1000ms
    内存
    16MiB
    难度
    7
    标签
    递交数
    73
    已通过
    18
    上传者