首页 > 其他 > 详细

搜索入门——踏青

时间:2020-10-02 23:08:56      阅读:77      评论:0      收藏:0      [点我收藏+]

include<bits/stdc++.h>

using namespace std;
char s[110][110];//地图
int n,m,sum;//n行,m列
int dir[4][2] = {{1,0},{0,1},{-1,0},{0,-1}};//右、上、左、下
int vis[110][110];//标志,遍历过就设为1,没有遍历的话初始值为0
void dfs(int x,int y){//深搜
int tx,ty;//在x、y基础上新移动的点
for(int i=0;i<4;i++){
tx=x+dir[i][0];
ty=y+dir[i][1];
if(tx>=0&&tx<n&&ty>=0&&ty<m&&s[tx][ty]‘#‘&&vis[tx][ty]0){
vis[tx][ty]=1;
dfs(tx,ty);//在新的点上继续深搜
}
}
}
int main(){
cin>>n>>m;
sum=0;
for(int i=0;i<n;i++){
cin>>s[i];
}
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
if(s[i][j]==‘#‘&&!vis[i][j]){
vis[i][j]=1;
dfs(i,j);
sum++;
}
cout<<sum;
return 0;
}

搜索入门——踏青

原文:https://www.cnblogs.com/gaoweiextraordinary/p/1234567----.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!