DFS专攻:HDU 2128 哈密顿绕行世界问题

原创 2013年12月04日 22:02:06

又一道需要DFS回溯的好题,比较简单,不过现在也正好用来练习DFS,等把简单的都弄会了,再搞难的……GO ON!!!

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<set>
#include<vector>
#include<stack>
#include<ctime>
#include<cstdlib>
#define mem(a,b) memset(a,b,sizeof(a))
typedef long long ll;
using namespace std;
char a[22][4],d[22],visit[22],m,k;   //a存路径,d存搜索过程的路径,以便输出,visit标记哪条路走过了……
void dfs(int j,int t)
{
    d[t]=j;
    visit[j]=1;
    if(t==20&&(a[j][1]==m||a[j][2]==m||a[j][3]==m))
    {
        d[t+1]=m;
        printf("%d: ",k++);
        for(int i=1;i<=21;i++)
            printf(" %d",d[i]);
        printf("\n");
    }
    for(int i=1;i<=3;i++)
    {
        if(!visit[a[j][i]])
        {
            visit[a[j][i]]=1;
            dfs(a[j][i],t+1);
            visit[a[j][i]]=0;   //回溯,以便下次能使用这条路
        }
    }
}
int main()
{
    for(int i=1;i<=20;i++)
        scanf("%d%d%d",&a[i][1],&a[i][2],&a[i][3]);
    while(scanf("%d",&m)&&m)
    {
        mem(d,0);
        mem(visit,0);
        k=1;
        dfs(m,1);
    }
    return 0;
}


相关文章推荐

HDU2181:哈密顿绕行世界问题(DFS) (C)

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

哈密顿绕行世界问题 HDU - 2181 DFS

哈密顿绕行世界问题 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota...
  • khn64
  • khn64
  • 2017年07月29日 20:57
  • 61

DFS深度优先搜索(3)--hdu2181(哈密顿绕行世界问题)(基础题)

哈密顿绕行世界问题                                 Time Limit:1000MS    Memory Limit:32768KB    64bit IO F...

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

该题乍看很难的样子,其实就是个水DFS,因为要打印所有可能方案,所以无法剪枝,直接遍历所有可能情况就行。 细节参见代码: #include #include #include #include #...

HDU - 2181 哈密顿绕行世界问题(简单dfs)

一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市。 简单的dfs,注意输出路径的处理。...

hdu 2181 哈密顿绕行世界问题 ——dfs

题目: F - 哈密顿绕行世界问题 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submi...

HDU 哈密顿绕行世界问题(dfs)

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

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

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

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

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2181 哈密顿绕行世界问题 Problem Description 一个规则的实心...

hdu(2181):哈密顿绕行世界问题,dfs遍历

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2181 此题真的是一个水题,当然也只有这种题目才给了我前进的动力,要是一直被各种打压,岂不得累死! ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DFS专攻:HDU 2128 哈密顿绕行世界问题
举报原因:
原因补充:

(最多只允许输入30个字)