zoukankan      html  css  js  c++  java
  • 哈密顿路

     

    邮递员在送信时,为了节省路途,自己规定:每次总是从n 个村子中选择其中一个合适的村子出发,途中每个村子仅且经过一次,送完所有的信。已知各个村子的道路连通情况

    输出

    所有符合要求的路线。如果没有输出“no road”。

    【输入】 第一行:整数n:村子的个数。 接下来是一个n*n 的0、1 矩阵,表示n 个村子的连同情况,如:a[i,j]=1 ,表示第i 和第j 个村子之间有路可走,如果a[i,j]=0,表示他们之间无路可走。

    【输出】

    按序号从小到大输出所有可行的线路

    输入:

    7 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 输出: 2 3 7 6 5 1 4 3 7 6 5 2 1 4 4 1 2 3 7 6 5 4 1 2 5 6 7 3 4 1 5 2 3 7 6 4 1 5 6 7 3 2 5 6 7 3 2 1 4 6 7 3 2 5 1 4

    这个邮递员是不是脑子有泡,把哪个村庄经历两遍能死呀

    然后他竟然还要我找到每一条可行线路,一条路还不够你走的呀

    你知道你走的这么任性给我带来多大的困扰吗!

    接下来是答案

     1 int dfs(int a,int tot)
     2 {
     3     if(tot == n) 就输出这个顺序;
     4     vis[x] = 1;//让这个点被访问过 
     5     b[j++] = x;//记录这个点的坐标 
     6     for(int i = 1;i <= n;i++)
     7     {
     8         if(vis[i] == 0 && a[i][x] == 1)//如果这个点没有被访问过并且有路,那就继续从这个点开始新一轮搜索 
     9         {
    10             dfs(i,tot + 1);    
    11             j--;//如果搜索的过程中没有发现合适的点,那我们就回溯 
    12             vis[x] = 0; 
    13         }
    14     } 
    15 }

    这就是这个代码里的搜索部分,其他的我就不多写了昂,反正我也不太会

    好了就这样了我要去学化学了,化学使我快乐(强颜欢笑)
     
  • 相关阅读:
    转自MicrosoftDDOS处理参考如何:强化 TCP/IP 堆栈安全
    [原创]x.509证书在WCF中的应用(CS篇)
    ExtJs学习笔记(17)_table布局
    Javascript生成GUID
    ExtJs学习笔记(18)_ExtJs嵌入FCK示例
    ExtJs学习笔记(12)_Anchor布局
    再谈web.config/app.config敏感数据加/解密的二种方法
    [转自雨痕]LINQ to SQL Delay Loaded
    ExtJs学习笔记(1)_Hello World!
    aspx超时问题容易忽略的细节
  • 原文地址:https://www.cnblogs.com/yupeiqi/p/9436911.html
Copyright © 2011-2022 走看看