日常水题解
2025-08-17 08:07:52
发布于:广东
1阅读
0回复
0点赞
简单 so easy
#include <iostream>
using namespace std;
int dx[8] = {-1,1,0,0,-1,-1,1,1};
int dy[8] = {0,0,-1,1,-1,1,-1,1};
char a[110][110];
int n,m;
int cnt = 0;
void dfs(int x,int y){
// 找到的水坑直接变成旱地,防止重复
a[x][y] = '.';
//继续找下一个受害水坑
for(int i = 0; i < 8; i ++){
int nx = x + dx[i];
int ny = y +dy[i];
//判断是否是水坑
if(1<=nx && nx <= n && 1<= ny && ny <= m && a[nx][ny] == 'W'){
dfs(nx,ny);
}
}
}
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(a[i][j] == 'W'){//找到水坑了!
dfs(i,j);//深搜开造!(搜范围)
cnt++;//计数!
}
}
}
cout<<cnt; //输出!
return 0;
}
(内含 Gandi)
全部评论 1
太水了
2025-08-17 来自 广东
0
有帮助,赞一个