图论:欧拉 哈密顿路径
文章平均质量分 68
skajre
这个作者很懒,什么都没留下…
展开
-
欧拉道路与欧拉回路算法
若是有向图,把vis[u][v]=vis[v][u]=1改为vis[u][v]=1; void euler(int u) { for(int v=0;v<n;v++) { if(G[u][v]&&!vis[u][v]) { vis[u][v]=vis[v][u]=1; euler(v);原创 2016-05-26 14:38:36 · 465 阅读 · 0 评论 -
uva 10129 Play on Words
这个dfs感觉好简陋,但是只要能把联通部分的vis点上就行,顺序也不管了。 dos是用来判断联通的,有3种情况,一种是不联通,那么从出度为1的起点开始,能把联通的部分连起来,不联通的访问不了,因为从起点开始,第二种情况是联通的欧拉道路,遍历一遍就行,虽然遍历的顺序不对,但是能把联通的结点都访问完,第三种情况是欧拉回路,那就同第二种情况了。 总的来说就是先判断有没有欧拉道路或欧拉回路,有的话再判原创 2016-05-27 19:37:01 · 239 阅读 · 0 评论 -
UVA 10054 The Necklace(欧拉回路)
输出不能顺序输出,如果环中还有一个小环,那么dfs的时候就会回溯,那样的话顺序输出就会错误,但是逆序输出就能保证首位相接。#include #include #include #include #include #include using namespace std; const int maxc=50+5; int degree[maxc],vis[maxc][maxc]; #define s原创 2016-11-09 20:06:52 · 219 阅读 · 0 评论