哈密尔顿环
发布日期:2021-10-16 05:05:02 浏览次数:18 分类:技术文章

本文共 641 字,大约阅读时间需要 2 分钟。

欧拉回路是指不重复的走过所有路径的回路,而哈密尔顿环是指不重复地走过所有的点,并且最后还能回到起点的回路。使用简单的深度优先搜索,就能求出一张图中所有的哈密尔顿环,下面给出一段参考程序:

#include 
#include
#include
#include
#include
#include
#include
using namespace std;int start,length,x,n;bool visited[101],v1[101];int ans[101],num[101];int g[101][101];void print(){ int i; for(i=1;i<=length-1;i++)cout<
<<' '; cout<
<
>n; int m;cin>>m; for(int i=1;i<=m;i++){ int x,y; cin>>x>>y; g[x][++num[x]]=y; g[y][++num[y]]=x; } for(x=1;x<=n;x++) //每一个点都作为起点来尝试访问,因为不是从任何一点开始都能找过整个图 { if(!v1[x]) //如果点x不在之前曾经被访问过的图里 { length=0; //定义一个ans数组存答案,length记答案的长度 dfs(0,x); } } return 0;}

转载地址:https://blog.csdn.net/sinat_37668729/article/details/76890149 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:A. Vladik and Courtesy(思维题)
下一篇:Shredding Company (dfs)

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月01日 22时08分57秒