题意: 输入一个n <=20 个结点的无向图以及某个结点k   按照字典序从小到大顺序输出从结点1到结点k的所有路径  要求结点不能重复经过

标准回溯法

要实现从小到大字典序 现在数组中排序好即可

标记数组一定要删去!!!!切记   又因为这个弄错了

提高效率的方法:

先遍历一遍所有点  把和k点相关的点存入数组中   那些无关的点根本用不到

同时也解决了如果 1与k不相连所造成的大量时间浪费

#include<bits/stdc++.h>
using namespace std;
#define N 22
int k;
int path[N];
int mp[N][N];
int cnt=0;
int vis[N];
vector<int>s;
void dfs1(int x)
{vis[x]=1;s.push_back(x);for(int i=1;i<21;i++)if(mp[x][i]&&!vis[i])dfs1(i);
}void dfs(int node,int cur)
{if(node==k){cnt++;printf("1");for(int i=1;i<cur;i++)printf(" %d",path[i]);printf("\n");}for(int i=1;i<s.size();i++){if(mp[node][s[i]])if(!vis[ s[i] ]){path[cur]=s[i];vis[ s[i] ]=1;dfs( s[i] ,cur+1);vis[ s[i] ]=0;}}
}int main()
{   int cas=0;while(scanf("%d",&k)==1&&k){int a,b;memset(mp,0,sizeof mp);while(scanf("%d %d",&a,&b)&&b&&a){mp[a][b]=mp[b][a]=1;}s.clear();path[0]=1;cnt=0;dfs1(k);sort(s.begin(),s.end());memset(vis,0,sizeof vis);printf("CASE %d:\n",++cas);dfs(1,1);printf("There are %d routes from the firestation to streetcorner %d.\n", cnt, k);}
}

转载于:https://www.cnblogs.com/bxd123/p/10416035.html

7-1 FireTruck 消防车 uva208相关推荐

  1. python怎么复制字符串_python字符串复制的几种方法

    >>> list1 = [1,2] >>> id(list1) 50081032 >>> list2 = list1.copy() >> ...

  2. 习题7-1 消防车(Firetruck,ACM/ICPC World Finals 1991, UVa208)

    原题链接:https://vjudge.net/problem/UVA-208 备注:回溯法 分类:DFS 代码如下: #include<cstdio> #include<cstri ...

  3. UVA208 消防车 Firetruck

    知识点:图的遍历,回溯 这个题其实就是图的遍历然后加上回溯,但是有点坑的是,我们在找路径之前,要先判断1是不是能到k点,否则会超时,这个要不是看提示,还真想不到,因为如果不用别的函数来判断是不是连通的 ...

  4. 消防车Firetruck

    题目描述 中心城市消防部门与运输部门合作,维护反映城市街道现状的城市地图.消防员需要能够选择从火警站到火警的路线. 中心城市分为不重叠的消防区.当报告发生火灾时,中央调度员通知火灾发生地区最近的火警站 ...

  5. 2022-2028年中国消防车行业市场前瞻与投资战略规划分析报告

    [报告类型]产业研究 [报告价格]¥4500 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国消防车行业市场行业相关概述.中国中国消防 ...

  6. 通道设置_烟台240家住宅小区、346家重点单位完成消防车通道标识设置

    "有了这样显眼的标识后,消防通道更加清晰可见,提醒大家时刻注意保持消防通道畅通.这样一来,发生火灾消防车能及时通过,我们出行.生活也增添了一份安全保障."消防监督人员在指导小区物业 ...

  7. ps绿化工具_绿化消防车价位

    绿化消防车价位绿化消防车价位 4吨东风消防洒水车,又称为多功能消防车,它是在东风原装二类底盘基础上加消防泵.消防炮.洒水炮及洒水车的前冲后洒.侧喷及水罐体组成,既能参加救火灭火功能,水炮的有效射程≥4 ...

  8. UVA - 208 Firetruck

    UVA - 208 Firetruck 题目大意 构造出一张图,给出一个点,让你按字典序输出所有从1到该点的路径 一开始直接DFS超时了 后面看到大佬的优化,大意就是很多起点与终点不相连,需要一开始剪 ...

  9. 三轴合并_用两套乐高60107合并成铰接式云梯消防车,看看和60112有什么区别

    我们之前通过将乐高城市组 60107 那套云梯消防车改装成一个特技赛车冲过终点线的场景,来演示了积木的套内 MOC. 今天我们就来看看两套 60107 又能做什么. 60107 (2006) 2016 ...

最新文章

  1. python无法调用pygame,python-pycharm无法识别pygame程序包
  2. 香帅的北大金融学课笔记19 -- 科技金融
  3. 「PKUWC2018」随机游走
  4. 只有学霸才懂的学习技巧,看完脑洞大开,绝对涨姿势!
  5. 话术php源码,恋爱话术宝典织梦源码
  6. Valgrind快速入门指南
  7. django序列化器嵌套_Django Rest Framework中用于OneToOne字段的序列化程序中的嵌套关​​系
  8. 效果好,速度快!大连海事大学提出基于增强多任务学习的单图像去雨算法MENET...
  9. ARM平台AMBA总线uart驱动和console初始化
  10. foobar2000 播放dsd 512
  11. 使用VSTO开发Excel WorkBook文档级项目中出现的Bug及处理办法
  12. UE4 解除帧率限制
  13. java中raiseSalary_用Java编写常用的工资管理系统,目的是把每个人的工资上涨百分之五...
  14. 获取汉字拼音首字母方法
  15. 广发股票交易接口做什么的?
  16. 云计算供应商在合同谈判时可能拒绝的三个事项以及要求
  17. Linux DMA Engine framework(2)_功能介绍及解接口分析
  18. 文件上传控件SWFUpload使用指南分享
  19. 小熊派移植华为 LiteOS-M(基于MDK)
  20. mysql入门第一章

热门文章

  1. MVC学习IIS的不同版本(一)
  2. UIView编程体验(一)
  3. C#中使用Oracle 存储过程笔记
  4. 『原创』一个基于Win CE 5.0的Txt文件阅读器
  5. Web开发者不可不知的16条原则
  6. Spring学习11-Spring管理各种数据源
  7. android获取控件宽度高度
  8. 2015第29周二AOP
  9. QT使用Q_OBJECT链接不通过的一种情况
  10. 《Windows核心编程》---剪贴板