题目链接:https://vjudge.net/contest/185350#problem/C

题目大意:一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市。输出从第m个城市出发经过每个城市1次又回到m的所有路线, 如有多个解,按字典序从小到大输出。

解题思路:题目很吓人,从起点DFS,重新回到起点是把路径输出来就行了,注意:下一个走的点要按从小到大的顺序,因为要使路径字典序从小到大。

代码:

 #include<cstdio>
#include<iostream>
#include<cstring>
#include<queue>
using namespace std; int point,cnt;
int map[][];
int vis[],path[]; void dfs(int pos,int len){
vis[pos]=;
//下个点按从小到大顺序走
for(int i=;i<=;i++){
if(map[pos][i]){
path[len]=pos;
if(i==point&&len==){
printf("%d: ",++cnt);
for(int i=;i<=;i++)
printf("%d ",path[i]);
printf("%d\n",point);
}
if(!vis[i])
dfs(i,len+);
}
}
vis[pos]=;
} int main(){
int a,b,c;
while(scanf("%d",&a)&&a){
cnt=;
memset(map,,sizeof(map));
scanf("%d%d",&b,&c);
map[][a]=map[][b]=map[][c]=;
for(int i=;i<=;i++){
scanf("%d%d%d",&a,&b,&c);
map[i][a]=map[i][b]=map[i][c]=;
}
scanf("%d",&point);
dfs(point,);
}
return ;
}

最新文章

  1. 从java文件和CS文件里查询方法使用次数工具
  2. PHP无限级分类的实现(不使用递归)
  3. JAVA格物致知基础篇:你所不知道的返回码
  4. 如何设置让基于matplotlib的绘图库正常的显示no-ascii字符(中文字符)
  5. uboot命令及内核启动参数
  6. Telerik RadGrid Demo
  7. 面试学到的css布局,细节影响了我的面试成绩
  8. Android解析XML
  9. 国产编程语言R++ V1.5发布
  10. Xcode开发和调试总结
  11. 【转载】FaceBook - How to add a Privacy Policy to your Apps?
  12. 关于oracle 还原数据库的要领
  13. POJ 3683 Priest John&#39;s Busiest Day
  14. Java虚拟机:JVM内存分代策略
  15. 使用Excel VBA编程将网点的百度坐标转换后标注到高德地图上
  16. ubuntu1604使用之旅——Qt交叉编译移植
  17. 二、tableau常用难点操作
  18. python骚操作之...
  19. php 实现一致性hash 算法 memcache
  20. 拓普微智能TFT液晶显示模块

热门文章

  1. Unity3D for VR 学习(1): 又一个新玩具 暴风魔镜 4(Android)
  2. 框架----Django内置Admin
  3. PID控制算法的C语言实现九
  4. 使用gulp进行css、js压缩
  5. Vue.js随笔一(Webpack + Vue.js开发准备,含VNM、NPM、Node、Webpack等相关工具)
  6. [LeetCode] Matrix 值修改系列,例题 Surrounded Regions,Set Matrix Zeroes
  7. sweetAlert2
  8. &lt;LC刷题二&gt;回文字符串判断之leetcode125&amp;234
  9. sublime text3 编辑器常用快捷键
  10. uboot之---make smdk2410_config命令详细解析