【算法刷题】洛谷 P1451 求细胞数量
作者:互联网
【题目来源】
【题目】
【算法】
深度优先搜索(DFS)
【代码】
#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
const int dx[]={0,0,1,-1};
const int dy[]={1,-1,0,0};
const int N=100+1;
const int M=100+1;
int n,m,cnt;
string s[N];
void dfs(int x,int y){
s[x][y]='0';//涂抹调,防止后续再访问导致死循环
for(int i=0;i<4;i++){
int xx=x+dx[i];
int yy=y+dy[i];
if(xx>=0 && xx<n && yy>=0 && yy<m && s[xx][yy]!='0'){
dfs(xx,yy);
}
}
return;
}
void solve(){
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(s[i][j]!='0'){
cnt++;
dfs(i,j);
}
}
}
printf("%d",cnt);
return;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++){
cin>>s[i];
}
solve();
return 0;
}
【提交情况】
标签:洛谷,&&,int,P1451,const,100,include,刷题 来源: https://blog.csdn.net/weixin_46828776/article/details/120257162