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

     说来很惭愧 ,最近一直 在做 搜索类的题目,这类搞了好久也没搞出来0 0,可能是分析问题的能力不够强,还需要多多训练..

    最后参考了高手的代码,的确值得借鉴学习的..以前也做过素数环啊,一模一样,这题咋做不出来,值得深思啊..

     1 #include<iostream>
     2 using namespace std;
     3 #define maxn 20
     4 int matrix[maxn+1][maxn+1],arr[maxn+1];
     5 bool  visited[maxn+1];
     6 int m,count = 1;
     7 void dfs(int val,int num)   //val为当前走的城市,num为已走的城市个数
     8 {
     9     int i;
    10     arr[num] = val;//标记可以走的位置
    11     visited[val] = true;
    12     if(num == maxn)
    13     {
    14         if(matrix[val][m])//地点为val的城市能回到原点
    15         {
    16             printf("%d: ",count++);
    17             for(i = 1; i <= maxn; i++)
    18                 printf(" %d",arr[i]);
    19             printf(" %d",m);
    20             printf("
    ");
    21         }
    22     }
    23     else
    24     {
    25         for(i = 1; i <= maxn; i++)
    26             if(!visited[i] && matrix[val][i])
    27                 dfs(i,num+1);
    28     }
    29     visited[val] = false;
    30 }
    31 int main() 
    32 {
    33    // freopen("2181.txt","r",stdin);
    34     int i,j,a,b,c;
    35     memset(matrix,0,sizeof(matrix));
    36     for(i = 1; i <= maxn; i++)
    37     {
    38         scanf("%d%d%d",&a,&b,&c);
    39         matrix[i][a] = matrix[i][b] = matrix[i][c] = 1;//将该点和相连的点标记
    40     }
    41     while(scanf("%d",&m) && m)
    42     {
    43         memset(visited,false,sizeof(visited));
    44         dfs(m,1);
    45     }
    46     return 0;
    47 }
  • 相关阅读:
    docker
    手动处理datanode磁盘间使用不均的问题
    Hadoop op 1)
    Python class and function json
    scala Basic 第三课
    spark streaming kafka example
    hadoop io PART1
    elasticsearch 集群搭建
    Scala编程第二课
    scala 第一课
  • 原文地址:https://www.cnblogs.com/xiaoniuniu/p/4020480.html
Copyright © 2011-2022 走看看