HDU-2181 哈密顿绕行世界问题
来源:互联网 发布:福州淘宝美工培训 编辑:程序博客网 时间:2024/05/20 18:20
题目:
http://acm.hdu.edu.cn/showproblem.php?pid=2181题意:
TSP问题,20个城市,每个城市与三个城市相连,输出从某个城市开始遍历所有城市的所有路径的字典序排列。思路:
按字典序暴力dfs即可,代码:
#define N 25int n,m;int flag,sum,ave,ans,len,ans1,ans2;int g[N][3],res[N];bool vis[N];void dfs(int num,int now){ if(num==20) { res[20]=n; printf("%d: ",++sum); for(int i=0;i<=20;i++) printf(" %d",res[i]); printf("\n"); return ; } for(int i=0;i<3;i++) { if(!vis[g[now][i]]) { vis[g[now][i]]=true; res[num+1]=g[now][i]; dfs(num+1,g[now][i]); vis[g[now][i]]=false; } if(num==19&&g[now][i]==n) dfs(num+1,n); }}int main(){ int i,j,k,kk,t,x,y,z; memset(g,0,sizeof(g)); for(i=1;i<=20;i++) { scanf("%d%d%d",&x,&y,&z); g[i][0]=x;g[i][1]=y;g[i][2]=z; sort(g[i],g[i]+3); } while(scanf("%d",&n)&&n) { sum=0;res[0]=n; memset(vis,false,sizeof(vis)); vis[n]=true; dfs(0,n); } return 0;}
0 0
- HDU 2181 哈密顿绕行世界问题
- hdu 2181 哈密顿绕行世界问题
- hdu 2181 哈密顿绕行世界问题
- HDU 2181 哈密顿绕行世界问题
- hdu 2181 哈密顿绕行世界问题
- HDU 2181 哈密顿绕行世界问题
- HDU-2181-哈密顿绕行世界问题
- HDU 2181 哈密顿绕行世界问题
- hdu 2181 哈密顿绕行世界问题
- HDU 2181 哈密顿绕行世界问题
- hdu 2181 哈密顿绕行世界问题
- hdu 2181 哈密顿绕行世界问题
- hdu 2181 哈密顿绕行世界问题
- HDU 2181 哈密顿绕行世界问题
- HDU 2181 哈密顿绕行世界问题
- HDU-2181 哈密顿绕行世界问题
- HDU 2181 哈密顿绕行世界问题
- hdu 2181 哈密顿绕行世界问题
- 项目总结之百度地图定位的简单应用
- 最大子矩阵 滴滴打车2016笔试
- 一个基于html标签的注册页面
- OpenGL中的坐标介绍
- Centos6.5安装redis3.0.7
- HDU-2181 哈密顿绕行世界问题
- js url encode
- TimeSat 3.1中文经典教程(含下载地址)
- 原生js实现Ajax
- c++定义动态数组
- 使用ROP攻击技术
- POJ1363 Rails(栈)
- 基本字符串压缩
- 二叉树