zoukankan      html  css  js  c++  java
  • 哈密顿绕行世界问题 HDU 2181

    题意让你先输20行数表示20个城市及所相邻的三个城市(行数就是该城市),然后给你一个数,从这个(给的数就表示城市)城市出发走遍所有城市一次回到出发的城市;看着复杂,仔细想想是个不算太难的深搜题,主要你得能把20行的数看成类似的地图,然后需要注意定义一个整形数组存储能到达的城市最后按顺序输出就可以了。

    代码:

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    #include<queue>
    #include<stack>
    #include<algorithm>
    using namespace std;
    int mp[25][3];
    int vis[25];
    int ans[25];
    int cas=1;
    //int dd[8][2]={0,1,0,-1,1,0,-1,0,1,1,1,-1,-1,1,-1,-1};
    void dfs(int a,int len,int c)//核心代码,自己再理解理解这里就不过多解释了
    {   int i,j,k;
    vis[a]=1;
    ans[len]=a;
     for(i=0;i<3;i++)
     {  int t=mp[a][i];
         if(t==c&&len==19)
         {
             printf("%d:  ",cas++);
             for(j=0;j<20;j++)
                 printf("%d ",ans[j]);
             printf("%d
    ",c);
         }
    
         if(!vis[t])
            dfs(t,len+1,c);
     }
     vis[a]=0;
    }
    
    
    
    int main()
    {   int i,j,m;
        for(i=1;i<=20;i++)
            scanf("%d%d%d",&mp[i][0],&mp[i][1],&mp[i][2]);
    
        while(~scanf("%d",&m),m!=0)
        {   memset(vis,0,sizeof(vis));
            dfs(m,0,m);
        }
    
    }
  • 相关阅读:
    VMware6.0-vCenter的安装准备及安装
    VeeamBackup9.5安装与配置
    VeeamOne(Free Edition 9.5 )-安装与配置
    UIDatePicker
    UIImagePicker照片选择器
    UIImageView
    UILabel
    UIScrollView 期本使用方法
    UISegment
    UISlide
  • 原文地址:https://www.cnblogs.com/nr1999/p/8530599.html
Copyright © 2011-2022 走看看