题意:一个规则的实心十二面体,它的 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 ;
}

DFS || HDU 2181的更多相关文章

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

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

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

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

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

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

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

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

  5. HDU - 2181 dfs [kuangbin带你飞]专题二

    保存每个节点的下一个节点一直往下面走就行了,不能重复经过某个点,当经过的点达到20个而且当前节点的下一个节点是起点就打印答案. AC代码 #include<cstdio> #include ...

  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. HDU - 2181 哈密顿绕行世界问题 dfs图的遍历

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

随机推荐

  1. NC文件的处理【netcdf】

    NC是气象领域数据的标准格式之一. 能够更好的存储格点数据. 下面为测试NC文件的读写. git:https://git.oschina.net/ipnunu/nctest pom.xml <p ...

  2. NYOJ1——A+B Problem NYOJ2——括号配对问题

    A+B Problem 时间限制:3000 ms  |  内存限制:65535 KB 难度:0   描述:此题为练手用题,请大家计算一下a+b的值  输入:输入两个数,a,b 输出:输出a+b的值 样 ...

  3. bash 脚本编程七 将命令输出保存到变量中(转载)

    转自:http://blog.csdn.net/csfreebird/article/details/7978699 `符号包含的命令执行完后,可以讲其输出结果保存到变量中 #!/bin/bash v ...

  4. SpringBoot整合Ribbon注入RestTemplate实例找不到原因

    通过把@LoadBalanced注解放在创建RestTemplate对象的方法上,可以正常运行:如果放在属性上,会导致找不到RestTemplate Bean

  5. POJ1236【图的前连通(缩点)】

    题意: 1.初始至少需要向多少个学校发放软件,使得网络内所有的学校最终都能得到软件. 2.至少需要添加几条传输线路(边),使任意向一个学校发放软件后,经过若干次传送,网络内所有的学校最终都能得到软件. ...

  6. Firefox下载安装fireBug提示下载出错的解决方案

    火狐官方扩展中心在国外,国内可能访问某一节点出现了问题.所以可能扩展无法安装,并且扩展更新可能出现问题,导致启动检查扩展更新过慢影响启动.我们可以通过修改系统hosts文件加速访问.修改hosts文件 ...

  7. php分页例子实现读取mysql数据分页显示

    以下代码是PHP分页案例,测试通过,主要是PHP+mysql实现分页,代码来处百度空间,有兴趣看的话可以了解一下PHP是如何分页的? <?php $link = mysql_connect(&q ...

  8. [转]Adaboost 算法的原理与推导

    看了很多篇解释关于Adaboost的博文,觉得这篇写得很好,因此转载来自己的博客中,以便学习和查阅. 原文地址:<Adaboost 算法的原理与推导>,主要内容可分为三块,Adaboost ...

  9. 自己写的MD5加密原码

    package com.wh.md5; import java.security.MessageDigest; import java.util.Arrays; /** * @author 王恒 * ...

  10. 【LeetCode 337 & 329. memorization DFS】House Robber III

    /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...