• 哈密顿路


     

    邮递员在送信时,为了节省路途,自己规定:每次总是从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 }

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

    好了就这样了我要去学化学了,化学使我快乐(强颜欢笑)
     
  • 相关阅读:
    编写JS代码的“use strict”严格模式及代码压缩知识
    开发网站要从用户的角度出发!
    你好,世界
    JavaScript的几种函数的结构形式
    JavaScript功能检测技术和函数构造
    android打造万能的适配器
    C语言第二次博客作业分支结构
    C语言第三次博客作业单层循环结构
    C语言第一次博客作业——输入输出格式
    C语言第四次博客作业嵌套循环
  • 原文地址:https://www.cnblogs.com/yupeiqi/p/9436911.html
Copyright © 2020-2023  润新知