题目描述:

代码如下:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define LEN 200000
  5.  
  6. typedef struct node node_t;
  7. typedef struct node
  8. {
  9. int n;
  10. node_t *next;
  11. }node;
  12.  
  13. int vis[LEN]; //记录节点是否访问
  14. int walk[LEN]; //记录访问的路径
  15. node *e[LEN]; //邻接表
  16.  
  17. int n,m,res;
  18.  
  19. void add_edge(int x,int y)
  20. {
  21. node *p;
  22. p = (node *)malloc(sizeof(node));
  23. p->n = y;
  24. p->next = e[x];
  25. e[x] = p;
  26. return ;
  27. }
  28.  
  29. void init()
  30. {
  31. int i,x,y;
  32.  
  33. scanf("%d%d",&n,&m);//节点数,线路条数
  34.  
  35. memset(vis,,sizeof(vis));
  36. memset(walk,,sizeof(walk));
  37. for (i= ; i<=n ; i++)
  38. e[i] = NULL;
  39.  
  40. for (i= ; i<m ; i++)
  41. {
  42. scanf("%d%d",&x,&y);
  43. add_edge(x,y);//双向图
  44. add_edge(y,x);
  45. }
  46. return ;
  47. }
  48.  
  49. void DP(int cur,int step)
  50. {
  51. int i;
  52. node *p = e[cur];
  53. walk[step] = cur; //记录路径上的节点
  54.  
  55. if (step>) //转发数必须大于两次
  56. {
  57. res ++;
  58. return ;
  59. }
  60.  
  61. while (p!=NULL)
  62. {
  63. if (vis[p->n]==)//下一节点可访问
  64. {
  65. vis[p->n] = ;
  66. DP(p->n,step+);
  67. vis[p->n] = ;
  68. }
  69.  
  70. if (step>= && p->n==walk[])
  71. {
  72. DP(p->n,step+);//源地址与目的地址相同
  73. }
  74. p = p->next;
  75. }
  76. return ;
  77. }
  78.  
  79. int main(void)
  80. {
  81. int i;
  82. init(); //初始化
  83. res = ;
  84. for (i= ; i<=n ; i++)//遍历所有节点
  85. {
  86. vis[i] = ;
  87. DP(i,);
  88. vis[i] = ;
  89. }
  90. printf("%d",res);
  91. return ;
  92. }

C解法

解题思路:

建立各节点之间的联系(邻接表)

然后遍历各节点,为满足条件,节点数必须大于2

当节点大于2后,下一节点可考虑源点或未访问的点

记录路径大于2的所有遍历路径即为题意所求

[蓝桥杯]PREV-13.历届试题_网络寻路的更多相关文章

  1. 蓝桥杯练习系统历届试题 剪格子 dfs

    问题描述 如下图所示,3 x 3 的格子中填写了一些整数. +--*--+--+|10* 1|52|+--****--+|20|30* 1|*******--+| 1| 2| 3|+--+--+--+ ...

  2. 蓝桥杯练习系统历届试题 带分数 dfs

    问题描述 100 可以表示为带分数的形式:100 = 3 + 69258 / 714. 还可以表示为:100 = 82 + 3546 / 197. 注意特征:带分数中,数字1~9分别出现且只出现一次( ...

  3. [蓝桥杯]PREV-23.历届试题_数字游戏

    问题描述 栋栋正在和同学们玩一个数字游戏. 游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈.栋栋首先说出数字1.接下来,坐在栋栋左手边的同学要说下一个数字2.再下面的一个同学要从上一个同学说的数 ...

  4. [蓝桥杯]PREV-12.历届试题_危险系数

    问题描述 抗日战争时期,冀中平原的地道战曾发挥重要作用. 地道的多个站点间有通道连接,形成了庞大的网络.但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系. 我们来定义一个危险系数DF( ...

  5. [蓝桥杯]PREV-44.历届试题_青蛙跳杯子

    问题描述 X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色. X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去. 如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙 ...

  6. [蓝桥杯]PREV-10.历届试题_幸运数

    问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的“筛法”生成 . 首先从1开始写出自然数1,,,,,,.... 就是第一个幸运数. 我们从2这个数开始.把所有序号能被2整除的项删除,变 ...

  7. [蓝桥杯]PREV-27.历届试题_蚂蚁感冒

    问题描述 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒. 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行. 这些蚂蚁中,有1只蚂 ...

  8. [蓝桥杯]PREV-26.历届试题_最大子阵

    问题描述 给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大. 其中,A的子矩阵指在A中行和列均连续的一块. 输入格式 输入的第一行包含两个整数n, m,分别表示矩阵A的行数和 ...

  9. [蓝桥杯]PREV-25.历届试题_城市建设

    问题描述 栋栋居住在一个繁华的C市中,然而,这个城市的道路大都年久失修.市长准备重新修一些路以方便市民,于是找到了栋栋,希望栋栋能帮助他. C市中有n个比较重要的地点,市长希望这些地点重点被考虑.现在 ...

随机推荐

  1. OOP跟我来

    世界一切 归于尘土 all is object 两大杀手锏:对象     类 三大武器:封装:继承:多态 #!/usrself=Nonepython # -*- coding: utf-8 -*- # ...

  2. win10下安装mongodb

    环境 :win10  mongodb-win32-x86_64-v3.4-latest.zip 1.下载地址:https://www.mongodb.com/download-center/commu ...

  3. SQLServer 2008R2主从部署实战

    说明: 由于临时接到做OA的主从环境,基于Windows 200R2 SQLServer2008 R2,由于搜索的资料都不完整,好多重要之处有遗漏,亲自动手做了好几次,填完了坑,整理以备忘记与分享,如 ...

  4. python学习笔记-os模块参数

    python的os 模块提供了非常丰富的方法用来处理文件和目录.常用的方法如下表所示: os.access(path, mode) 检验权限模式 os.chdir(path) 改变当前工作目录 os. ...

  5. String formate的语法解析及简单用法

    转自:https://blog.csdn.net/jiangyu1013/article/details/52607257 package cn.wuxiangbin.StringFormat; im ...

  6. Spring Boot的第一个程序

    Spring boot是由Pivotal团队提供的全新框架,在设计之初,其目的是为了简化Spring应用的创建.运行.测试.调试.部署的过程.Spring Boot框架不仅简化了Spring的搭建过程 ...

  7. PTA L2-4 关于堆的判断

    先上题面 链接 https://pintia.cn/problem-sets/994805046380707840/problems/994805064676261888 首先,题目描述的很清楚,这是 ...

  8. appscan使用教程(全)

    链接图文来源:https://www.cnblogs.com/ZoeLiang/p/10198361.html 一.下载与破解 1.下载Appscan:http://download2.boulder ...

  9. java 删除多层文件夹

    /** * 因为不小心,写了一个死循环,在电脑里创建的了n多层空文件夹 * 并且手动最外层删除不掉. * 所以用写了本代码,从里向外的进行删除操作. * @author Singularity * @ ...

  10. JavaScript 之 预编译 作用域,作用域链

    第一次写博客,本来是学习jQuery遇到闭包问题,发现并没有理解闭包,发现闭包牵扯的知识点太多.复习了一遍(发现自己该记住的全忘了)写在博客里,自己也是小白,希望大神们指点迷津,必将感激不尽. 我们知 ...