求助,90不知道哪里错了
查看原帖
求助,90不知道哪里错了
676619
finalSTian楼主2022/10/8 22:32

按照大佬思路写的,不知道哪里有问题

#include <bits/stdc++.h>
using namespace std;
char mp[101][101];
int n,m,coun=0;
int dx[8]={0,0,1,-1,1,-1,1,-1};
int dy[8]={1,-1,0,0,-1,1,1,-1};
void dfs(int x,int y){
    mp[x][y]=0;
    for(int i=0;i<8;i++){
        if(mp[x+dx[i]][y+dy[i]]==1){
            dfs(dx[i]+x,dy[i]+y);
        }
    }
    
    
}
int main(){
    cin>>m>>n;
    for(int i=1;i<=m;i++){
        for(int j=1;j<=n;j++){
          cin>>mp[i][j];
          if(mp[i][j]=='W') 
          mp[i][j]=1;
          else
          mp[i][j]=0;
      }
    }
    for(int i=1;i<=m;i++){
        for(int j=1;j<=n;j++){
          if(mp[i][j]==1){
              coun++;
              dfs(i,j);
          }
        }
    }
    cout<<coun;
 return 0;
}
2022/10/8 22:32
加载中...