博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 2181 哈密顿绕行世界问题
阅读量:6341 次
发布时间:2019-06-22

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

Sample Input
2 5 20
1 3 12
2 4 10
3 5 8
1 4 6
5 7 19
6 8 17
4 7 9
8 10 16
3 9 11
10 12 15
2 11 13
12 14 20
13 15 18
11 14 16
9 15 17
7 16 18
14 17 19
6 18 20
1 13 19
5
0
 
Sample Output

 

1 #include 
2 3 using namespace std; 4 5 int Map[21][21] = { 0 }; //邻接矩阵 6 int path[21]; //记录每一次答案的路线 7 bool visited[21] = { false }; 8 int num = 1; //路径的编号 9 10 11 void dfs(int city, int cur) //city为当前访问的城市,已经访问了cur个城市12 {13 path[cur] = city; //将当前城市记录在路径上14 visited[city] = true;15 16 if (cur == 20) //如果已经访问了20个城市17 {18 if (Map[city][path[1]] == 1) //这个城市与起点城市之间存在路径19 {20 cout << num << ": ";21 num++;22 for (int i = 1; i <= 20; ++i) 23 cout << path[i] << ' ';24 cout << path[1] << endl;25 }26 }27 28 for (int i = 1; i <= 20; ++i)29 {30 if (Map[i][city] == 1 && !visited[i])31 {32 dfs(i, cur+1); //注意此处不能是++cur33 visited[i] = false; //dfs完要把访问过的顶点重新置为未访问状态34 }35 }36 37 }38 39 40 int main()41 {42 //创建邻接矩阵43 int city;44 for (int i = 1; i <= 20; ++i)45 {46 for (int j = 1; j <= 3; ++j)47 {48 cin >> city;49 Map[i][city] = 1;50 }51 }52 53 int m;54 while (cin >> m && m != 0)55 {56 dfs(m, 1);57 num = 1;58 }59 60 61 return 0;62 63 }

 

 

 

 

转载于:https://www.cnblogs.com/FengZeng666/p/10352790.html

你可能感兴趣的文章
微服务架构介绍和RPC框架对比
查看>>
Debian下使用OpenLDAP 管理端
查看>>
泛型排序器TComparer
查看>>
9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路...
查看>>
创建符合标准的、有语意的HTML页面——ASP.NET 2.0 CSS Friendly Control Adapters 1.0发布...
查看>>
Adobe驳斥Flash过度耗电论 称HTML5更耗电
查看>>
No!No!No! It's not fashion!
查看>>
艰困之道中学到的经验教训
查看>>
互联网生态建设落地五大挑战——保险科技生态建设 ...
查看>>
进行短视频app开发工作时,可以加入它来保护青少年 ...
查看>>
25G DAC无源高速线缆和25G光模块之间的区别
查看>>
乐乐茶完成近2亿元Pre-A轮融资,祥峰投资领投
查看>>
clickhouse修改时区
查看>>
CSS_定位
查看>>
第二十四章:页面导航(六)
查看>>
IP_VFR-4-FRAG_TABLE_OVERFLOW【cisco设备报错】碎片***
查看>>
Codeforces Round #256 (Div. 2) D. Multiplication Table 【二分】
查看>>
ARM汇编指令格式
查看>>
HDU-2044-一只小蜜蜂
查看>>
HDU-1394-Minimum Inversion Number
查看>>