狗都不用BFS!!!
2026-05-31 17:56:47
发布于:浙江
3阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
char a[120][120];
int n,m;
int x[9]={0,-1,-1,-1,0,0,1,1,1},y[9]={0,0,-1,1,-1,1,0,-1,1};//导航
void dfs(int x1,int y1){
a[x1][y1]='.';//堵死
for(int i=0;i<9;i++){
int tx=x1+x[i];
int ty=y1+y[i];
if(tx>=0&&tx<n&&ty>=0&&ty<m&&a[tx][ty]=='W'){//剪枝
dfs(tx,ty);//搜索下一个水洼
}
}
return ;
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[i][j];
}
}
int s=0;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(a[i][j]=='W'){
s++;
dfs(i,j);
}
}
}
cout<<s;
return 0;
}
这里空空如也








有帮助,赞一个