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

前20行的第i行有3个数,表示与第i个城市相邻的3个城市.第20行以后每行有1个数m,m<=20,m>=1.m=0退出

输出从第m个城市出发经过每个城市1次又回到m的所有路线,如有多条路线,按字典序输出,每行1条路线.每行首先输出是第几条路线.然后个一个: 后列出经过的城市

dfsdfsdfsdfsdfsdfs…………

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
#define SZ 2010
bool vis[];
int path[];
struct node
{
int a, b, c;
}city[];
int ct[][];
int cnt = ;
int m;
void dfs(int x, int k)
{
path[k] = x;
for(int i = ; i <= ; i++)
{
int t = ct[x][i];
if(t == m && k == )
{
cnt++;
printf("%d: ", cnt);
for(int i = ; i < ; i++) printf(" %d", path[i]);
printf(" %d\n", m);
return;
}
if(t == m) continue;
if(!vis[t])
{
vis[t] = ;
dfs(t, k+);
vis[t] = ;
}
}
}
int main()
{
for(int i = ; i <= ; i++)
for(int j = ; j <= ; j++)
scanf("%d", &ct[i][j]);
for(int i = ; i <= ; i++) sort(ct[i]+, ct[i]+);
while(true)
{
scanf("%d", &m);
if(m == ) break;
cnt = ;
memset(vis, , sizeof(vis));
vis[m] = ;
dfs(m, );
}
return ;
}

最新文章

  1. VisualStudio自动编码插件(Autocode——devprojects.net)
  2. 两种include方式及filter中的dispatcher解析
  3. android中的layoutparams参数使用的简单总结
  4. SecureCrt脚本(二)二级对象之Dialog
  5. HTTP报文
  6. Android开发之IPC进程间通信-AIDL介绍及实例解析
  7. 我的Hibernate入门
  8. 腾讯QQ企业邮箱POP3/SMTP设置
  9. 项目总结之SSI (一)
  10. asp.net 2.0 Session丢失问题
  11. [Eclipse]代码已被写入关于如何切换到unix在新行
  12. HDU 1054 Strategic Game(树形DP)
  13. mysql用存储过程插入百万条数据, 及查询优化
  14. Scrum 冲刺 第二日
  15. c#动态加载卸载DLL
  16. java基础-开发工具IDEA
  17. 剑指Offer_编程题_2
  18. CentOS 安全优化
  19. 尚硅谷springboot学习12-profile
  20. @ResponseBody使用须知

热门文章

  1. py-day8-socket网络编程
  2. HDU 1995 汉诺塔V (水题)
  3. Tomcat黑窗口改变Title
  4. ORACLE PL/SQL 实例精解之第三章 PL/SQL中的SQL
  5. = =写个prim希望能够巨巨们看的懂
  6. bzoj 3262 陌上花开 【CDQ分治】
  7. 高级开发不得不懂的Redis Cluster数据分片机制
  8. Python转载
  9. docker监控系统
  10. [NewTrain 10][poj 2329]Nearest Number - 2