题目传送门

题意:中文题面

分析:直接排完序后DFS.这样的题以后不应该再写题解的.

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. vector<int> G[21];
  5. int ans[21];
  6. int v[3];
  7. bool vis[21];
  8. int cnt;
  9.  
  10. void print() {
  11. printf ("%d: ", ++cnt);
  12. for (int i=0; i<20; ++i) {
  13. printf ("%d ", ans[i]);
  14. }
  15. printf ("%d\n", ans[20]);
  16. }
  17.  
  18. void DFS(int u, int x, int step) {
  19. for (int i=0; i<G[u].size (); ++i) {
  20. int v = G[u][i];
  21. if (v == x) {
  22. if (step < 20) continue;
  23. ans[step] = x;
  24. print (); return ;
  25. }
  26. else if (vis[v]) continue;
  27. vis[v] = true;
  28. ans[step] = v;
  29. DFS (v, x, step + 1);
  30. vis[v] = false;
  31. }
  32. }
  33.  
  34. int main(void) {
  35. for (int i=1; i<=20; ++i) {
  36. for (int j=0; j<3; ++j) {
  37. scanf ("%d", &v[j]);
  38. G[i].push_back (v[j]);
  39. //G[v[j]].push_back (i);
  40. }
  41. }
  42. for (int i=1; i<=20; ++i) {
  43. sort (G[i].begin (), G[i].end ());
  44. }
  45. int m;
  46. while (scanf ("%d", &m) == 1) {
  47. if (!m) break;
  48. cnt = 0;
  49. memset (vis, false, sizeof (vis));
  50. vis[m] = true;
  51. ans[0] = m;
  52. DFS (m, m, 1);
  53. }
  54.  
  55. return 0;
  56. }

  

DFS HDOJ 2181 哈密顿绕行世界问题的更多相关文章

  1. HDOJ 2181 哈密顿绕行世界问题

    哈密顿绕行世界问题 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  2. HDU 2181 哈密顿绕行世界问题(经典DFS+回溯)

    哈密顿绕行世界问题 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  3. HDU 2181 哈密顿绕行世界问题 (DFS)

    哈密顿绕行世界问题 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  4. HDU - 2181 哈密顿绕行世界问题 dfs图的遍历

    哈密顿绕行世界问题 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  5. HDU 2181 哈密顿绕行世界问题 dfs 难度:1

    http://acm.hdu.edu.cn/showproblem.php?pid=2181 只有20个城市,而且每个点的度数恰好是3,也就意味着,对于即将进入环中的点,入度1,出度2,下一个点只有两 ...

  6. hdu 2181 哈密顿绕行世界问题【DFS】

    题目链接 题目大意: Problem Description 一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市.    Input ...

  7. HDU 2181 哈密顿绕行世界问题(DFS)

    Problem Description 一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市. Input 前20行的第i行有3个数, ...

  8. HDU 2181 哈密顿绕行世界问题 (DFS)

    题目链接:https://vjudge.net/contest/185350#problem/C 题目大意:一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城 ...

  9. (step4.3.8)hdu 2181(哈密顿绕行世界问题——DFS)

    题目大意:通俗点讲就是,输出所有从m城市出发,便利所有城市之后又能回到m城市的序列...... 解题思路:DFS 1)用map[][]来存储城市之间的连通情况.用used[]存储某个城市的使用情况(即 ...

随机推荐

  1. acdream.Bet(数学推导)

    Bet Time Limit:1000MS     Memory Limit:64000KB     64bit IO Format:%lld & %llu Submit Status Pra ...

  2. Who Gets the Most Candies?(线段树 + 反素数 )

    Who Gets the Most Candies? Time Limit:5000MS     Memory Limit:131072KB     64bit IO Format:%I64d &am ...

  3. smb

    smb编辑 SMB(Server Message Block)是协议名,它能被用于Wap连接和客户端与服务器之间的信息沟通.

  4. (8)UI(控件)

    1.按钮:   按钮是游戏中最常用的控件类型之一,控制用户点击事件的开关,有正常.按下.禁用三种状态,您可以为他们设置样式及文本.   使用场景   按钮的使用十分普遍,以官方示例中的主场景示例为例, ...

  5. hiho一下 第九十七周 数论六·模线性方程组

    题目1 : 数论六·模线性方程组 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:今天我听到一个挺有意思的故事! 小Hi:什么故事啊? 小Ho:说秦末,刘邦的将军 ...

  6. [ruby on rails] 跟我学之(1)环境搭建

    环境: ubuntu 12.04 (64bit) 代理: 自己最好弄一个代理. 环境配置指令如下: sudo apt-get update sudo apt-get install curl \cur ...

  7. python 下载文件 & 防盗链

    偶然下载一种类型的资源,发现好多翻页,右键另存什么的,不胜其烦. 决定用python写几句代码搞定.核心代码如下: from urllib import urlretrieve from urllib ...

  8. 每天一个脚本解析day1==》《service xxxxx status》之service脚本解析

    vim    /sbin/service #!/bin/sh . /etc/init.d/functions #读取环境变量. VERSION="$(basename $0) ver. 0. ...

  9. 一些Linux的路径

    系统引导时启动        /etc/rc.d/rc.local

  10. Longest Consecutive Sequence

    Given an unsorted array of integers, find the length of the longest consecutive elements sequence. C ...