我是一个不会dfs的蒟蒻,dfs WA求助
查看原帖
我是一个不会dfs的蒟蒻,dfs WA求助
1367333
are_you_sure楼主2024/11/9 20:09
#include<iostream>
using namespace std;
char a[105][105];
int dx[]={-1,-1,0,1,1,1,0,-1},dy[]={0,1,1,1,0,-1,-1,-1},n,m,cnt=0;
bool vis[105][105];
void dfs(int x,int y){
    for(int i=0;i<8;i++){
        
        if(a[x+dx[i]][y+dy[i]]=='W'&&vis[x][y]==0){
            vis[x][y]=1;
            dfs(x+dx[i],y+dy[i]);
        }
    }
}
int main(){
    cin>>n>>m;
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>a[i][j];
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            if(a[i][j]=='W' && vis[i][j]==0){dfs(i,j);cnt++;}
        }
    }
    cout<<cnt;
    return 0;
}

只对一个点,995

2024/11/9 20:09
加载中...