ZOJ 3332 (哈密顿路竞赛图)
参考:http://www.cnblogs.com/zhixingqiezhixing/archive/2012/04/21/2462351.html
1 /* 2 ZOJ :3332 3 思路: 4 这是个竞赛图问题 5 寻找图中的哈密顿路 6 竞赛图中一定有哈密顿路, 7 竞赛图去掉一个顶点和其关联的边仍是竞赛图 8 参考文献 哈密顿路 及 竞赛图 9 */ 10 #include<iostream> 11 #include<cstdio> 12 #include<cstring> 13 #include<list> 14 using namespace std; 15 16 const int con=110; 17 18 bool map[con][con]; 19 list<int> path; 20 list<int>::iterator cur,pre; 21 22 int main() 23 { 24 int t,n,i,x,y; 25 bool f; 26 //freopen("in.txt","r",stdin); 27 //freopen("out.txt","w",stdout); 28 scanf("%d",&t); 29 while(t--) 30 { 31 memset(map,0,sizeof(map)); 32 scanf("%d",&n); 33 int ct=n*(n-1)/2; 34 for(i=0;i!=ct;++i) 35 { 36 scanf("%d%d",&x,&y); 37 map[x][y]=true; 38 } 39 path.clear(); 40 path.push_back(1); 41 42 for(i=2;i<=n;++i) 43 { 44 f=0; 45 cur=path.begin(); 46 if(map[i][*cur]) 47 { 48 path.push_front(i); 49 f=1; 50 continue; 51 } 52 cur=path.end(); 53 cur--; 54 if(map[*cur][i]) 55 { 56 path.push_back(i); 57 f=1; 58 continue; 59 } 60 cur=pre=path.begin(); 61 cur++; 62 63 while(cur!=path.end()) 64 { 65 if(map[*pre][i]&&map[i][*cur]) 66 { 67 path.insert(cur,i); 68 f=1; 69 break; 70 } 71 pre++; 72 cur++; 73 } 74 if(!f)break; 75 } 76 77 if(i<=n)printf("Impossible\n"); 78 else 79 { 80 for(cur=path.begin();cur!=path.end();cur++) 81 { 82 if(cur != path.begin())//注意输出时的空格最后一个数字后不能有空格 83 printf(" "); 84 printf("%d", *cur); 85 } 86 printf("\n"); 87 } 88 } 89 system("pause"); 90 return 0; 91 }
转载于:https://www.cnblogs.com/zhixingqiezhixing/archive/2012/04/21/2462355.html
ZOJ 3332 (哈密顿路竞赛图)相关推荐
- 关于哈密顿路是否存在的遍历算法
关于哈密顿路是否存在的遍历算法 一.前言 二.基本术语 三.问题及其衍生问题 四.算法思想 1.定理证明刨析 2.改进后的算法 2.1 重定义类型 2.2 重载运算符 3.具体运算流程 4.关键算法 ...
- 最短哈密顿路matlab,最短路径系列【最短路径、哈密顿路等】
最短路径问题,一个经典算法问题.本文粗略总结了一种常见的最短路径算法,以及几个最短路径变种问题的解法,其中包括哈密顿路.对于有向图或者无向图,假设有V个节点,E条边,G[Vi,Vj]表示图中点Vi到V ...
- 最短哈密顿路matlab,SHP-VI: 一种基于最短哈密顿通路的POMDP值迭代算法
摘要:基于试探(trial-based)的值迭代算法是求解部分可观察Markov决策过程(partially observable Markov decision process,POMDP)模型的一 ...
- 哈密顿图 哈密顿回路 哈密顿通路(Hamilton)
本文链接:http://www.cnblogs.com/Ash-ly/p/5452580.html 概念: 哈密顿图:图G的一个回路,若它通过图的每一个节点一次,且仅一次,就是哈密顿回路.存在哈密顿回 ...
- 【项目】无人清扫车路径规划:基于ATSP的Lanelet2结构化道路覆盖算法
实习期间一直在做清扫车项目的全局路径规划,在此记录一下. 本文针对Lanelet2框架下的结构化道路全覆盖问题,将其抽象为ATSP问题,进行求解.最终效果为,实现了在全部车道覆盖至少一次的前提下,最短 ...
- P4233-射命丸文的笔记【NTT,多项式求逆】
正题 题目链接:https://www.luogu.com.cn/problem/P4233 题目大意 随机选择一条有哈密顿回路的nnn个点的竞赛图,求选出图的哈密顿回路的期望个数. 对于每个n∈[1 ...
- usaco Postal Vans(dp)
是哈密顿回路,然后...就不知道怎么写了 ,以前写过类似的不过情况没这么多也没这么复 usaco training 6.1.1 Postal Vans 题解 标签: usaco training题解d ...
- 遇到的仍未学习的各种结论
约瑟夫环:结论板子啦啦啦 n边形费马点:板子以及结论 五边形数:板子板子 欧拉函数:结论结论 全局最小割:算法啦啦啦 康托展开:算法 莫比乌斯反演:算法 莫队:算法 曼哈顿最小生成树 cdq分治:算法 ...
- 离散数学简单复习知识点汇总
命题是非真必假的陈述句. 联结词:与原子命题一起构成复合命题. 原子命题公式:命题常元.命题变元同城为原子命题公式,简称原子公式. 合式公式是由下列规则形成的字符串: (1) 真值 T 和 F 是合式 ...
- 总结 离散数学知识点
总结 离散数学知识点 第二章 命题逻辑 1.→,前键为真,后键为假才为假:<->,相同为真,不同为假: 2.主析取范式:极小项(m)之和:主合取范式:极大项(M)之积: 3.求极小项时 ...
最新文章
- rhel5+nis+autofs+nfs
- 使用递归的方式实现简易的二分法
- 三星android5.0基带,三星首款5G手机没用高通!问题来了:5G基带哪家强?
- Facebook开源Horizon:首个用于大规模产品和服务的强化学习平台
- 快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?
- AI芯片浮出新玩家OURS,来者何人?新晋图灵奖得主华人弟子谭章熹
- [No0000143]Win10“卓越性能模式”
- 常见的文件格式有哪些
- 使用Android Studio 开发APP入门经验
- 安卓pdf阅读器_手把手教你选购电子书阅读器!(Kindle/掌阅电子纸/文石电子书/小米电纸书……)...
- 基于Python实现的基金交易系统
- 网站跳出率高解决方法
- 周期函数的自身叠加后功率函数思考
- python英文分句_英文分句
- ASP.NET Identity 2新增双重认证、帐号锁定、防伪印章功能并修复了一些bug
- 基于机智云的智能家用窗户窗帘控制及物联网系统
- 信息系统项目管理师备考资料-第三版(4)
- MySQL:使用NavicatIP远程连接失败,提示“is not allowed to connect to this MySql server”
- php通过curl实现bigpipe
- OSPF ISIS RIP实现总公司与分公司等的互联