求助
查看原帖
求助
902689
yszysh楼主2025/6/20 08:50
#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0,dx[8]={-1,-2,-2,-1,1,2,2,1},dy[8]={2,1,-1,-2,2,1,-1,-2};
char c[105][105];
void dfs(int x,int y){
    c[x][y]='.';
    for(int i=0;i<8;i++){
        int xx=x+dx[i],yy=y+dy[i];
        if(xx<1||xx>n||yy<1||yy>m) continue;
        if(c[xx][yy]=='W') dfs(xx,yy);
    }
    return;
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>c[i][j];
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(c[i][j]=='W'){
                dfs(i,j);
                sum++;
            }
        }
    }
    cout<<sum;
    return 0;
}
2025/6/20 08:50
加载中...