10054 - The Necklace ( 欧拉回路 ~~ )
来源:互联网 发布:淘宝上设计衣服来卖 编辑:程序博客网 时间:2024/05/15 04:24
满足欧拉回路的条件有:
1. 连通;
2.没有奇点;
所以要先判连通,再判所给的点是否全是偶点,若是都符合,则可以打印欧拉回路。
操作步骤详见代码:
#include <stdio.h>#include <string.h>#include <stdlib.h>int n;int G[60][60];int V[60];int vis[60][60];int count[60];void init(){ memset(V,0,sizeof(V)); memset(G,0,sizeof(G)); memset(vis,0,sizeof(vis)); memset(count,0,sizeof(count));}void dfs(int u)//用于判断是否连通;{ for(int v=1;v<=50;v++) if(G[u][v]&&!vis[u][v]) { vis[u][v]=1; V[v]=1; dfs(v); }}void euler(int u)//当满足欧拉回路的条件时,用此函数打印欧拉回路;{ for(int v=1;v<=50;v++) { if(G[u][v]) { G[u][v]--; G[v][u]--; euler(v); printf("%d %d\n",v,u); } }}int main(){ int T; scanf("%d",&T); for(int i=0;i<T;i++) { if(i) printf("\n"); printf("Case #%d\n",i+1); init(); scanf("%d",&n); int a,b; for(int j=0;j<n;j++) { scanf("%d%d",&a,&b); G[a][b]++; G[b][a]++; count[a]++; count[b]++; } int ok=0, cnt=0; /*判断图是否连通*/ V[a]=1; dfs(a); for(int j=1;j<=50;j++) { if(count[j]) { if(!V[j]) cnt++; } } if(cnt) ok=1; /*接下来是判断有没有奇点,欧拉回路是不应该有奇点的 */ for(int j=1;j<=50;j++) { if(count[j]%2==1) { ok=1; break; } } //满足欧拉回路的条件时,打印欧拉回路; if(ok) printf("some beads may be lost\n"); else { euler(a); } } return 0;}
也许不是最好的解法,不是最快的解法,不过个人感觉比较稳妥。
0 0
- 10054 - The Necklace//欧拉回路
- UVa 10054 - The Necklace(欧拉回路)
- UVA 10054 the necklace 欧拉回路
- UVA 10054 - The Necklace 欧拉回路
- UVa 10054 - The Necklace 欧拉回路
- 10054 - The Necklace ( 欧拉回路 ~~ )
- uva 10054 The Necklace (欧拉回路)
- UVa 10054 The Necklace(欧拉回路)
- UVA 10054 The Necklace 欧拉回路
- The Necklace - UVa 10054 欧拉回路
- UVA 10054 - The Necklace(欧拉回路)
- uva 10054 The Necklace 欧拉回路
- uva 10054 The Necklace 欧拉回路
- UVA 10054 The Necklace(欧拉回路)
- UVA - 10054 The Necklace 欧拉回路
- 10054 - The Necklace(欧拉回路+回路打印)
- UVa 10054 - The Necklace, 欧拉回路+打印路径
- 10054 - The Necklace(欧拉回路+DFS,2级)
- 全错位排列
- NYOJ168 房间安排
- Android开发之Service与IntentService的区别与使用场景(源代码剖析)
- 内存中数据输出到stdout, ffmpeg如何直接读取stdio
- HDU1166敌军布阵
- 10054 - The Necklace ( 欧拉回路 ~~ )
- YUI3内核分析(一)——YUI3实例化过程
- 普适系统中的动态多限制的任务分解划分算法
- 黑马程序员:数组和数组的操作
- 英语学习--且行且珍惜
- spring aop expression 匹配多个条件 多个表达式
- 黑马程序员-ArrayList与HashSet小知识
- 经典算法--排序二叉树
- 李彦宏的下一个金矿:调整事业部结构LBS