信息学奥赛一本通 100498. 求细胞数量
原题链接
简单
作者:
学医救不了神金
,
2022-12-28 16:00:50
,
所有人可见
,
阅读 207
DFS
#include <bits/stdc++.h>
using namespace std;
int n,m;
char a[105][105];
int ans =0 ;
void dfs(int x,int y){//将整块赋值为0
if(x<1 || x>n || y<0 || y>m-1 || a[x][y] == '0') return;
a[x][y] = '0';
dfs(x,y+1);
dfs(x,y-1);
dfs(x+1,y);
dfs(x-1,y);
}
int main(){
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++){
scanf("%s",&a[i]);
}
for(int i=1;i<=n;i++){
for(int j=0;j<m;j++){
if(a[i][j] != '0'){
ans++;//记录数量
dfs(i,j);
}
}
}
printf("%d",ans);
return 0;
}
这链接不对劲(doge)
《确实》