//Author:PanDaoxi
#include <iostream>
using namespace std;
//book=标记岛屿是否被搜索过
//e=地图
//n=岛屿数量
//m=桥的数量
int book[101],e[101][101],n,m;
//计数器:搜索过的岛屿
int sum=0;
//深搜函数
void dfs(int j){
cout<<j<<" "; //输出当前所在岛屿
sum++;
if(sum==n) return; //搜索完成
//搜索j是否可以去其他岛屿
for(int i=1;i<=n;i++){
//1.岛屿:j和i是否相通
//2.判断岛屿i是否被搜索过
if(e[i][j]==1&&book[i]==0){
book[i]=1;
dfs(i);
}
}
}
int main(){
cin>>n>>m;
int a,b;
for(int i=1;i<=m;i++){
cin>>a>>b;
e[a][b]=e[b][a]=1;
}
book[1]=1; //从1开始搜索
dfs(1); //开始深搜
return 0;
}
C++岛屿问题
原创
©著作权归作者所有:来自51CTO博客作者PanDaoxi的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:C++计算最短的路线所用时间
下一篇:C++细胞数目问题
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
LeetCode 200. Number of Islands 岛屿数量(C++)
写在前面持续刷题学习ing出来混迟早都要还的,还大学期间欠下的算法债,,,刷题过
岛屿数量 NumberofIslands leetcode c++ #include -
C++广度优先算法应用题——计算岛屿面积
C++广度优先算法应用题——计算岛屿面积!
c++ 开发语言 后端 搜索 i++ -
C++背包问题
C++背包问题,500粉丝开粉丝群动态规划应用题
c++ 开发语言 后端 i++ ios -
C++台阶问题
C++台阶问题!
#include ios i++ C语言 C -
C++ 环境问题
C++ 环境问题
c++ 开发语言 后端 位操作 64位操作系统 -
C++体检问题
C++体检问题
c++ 开发语言 后端 i++ ios -
C++问题
1.成员函数加上const1、非静态成员函数后面加const(加到非成员函数或静态成员后面会
C++ 成员函数 this指针 抽象类