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

分析:终于做到水题了,此题唯一要点就是先判断是否能到达,用dfs。

#include<cstdio>
#include<cstring>
#include<cctype>
#include<queue>
#include<iostream>
#include<vector>
#include<list>
#include<set>
using namespace std;
const int maxn = 20+5;
int G[maxn][maxn], vis[maxn];
int k,m;
int allroute;
int routemap[400][maxn];
void solve(int cur,int dep) {if (cur == k) {for (int i = 0; i < dep-1; i++) {cout << routemap[allroute][i] << " ";}cout << routemap[allroute][dep - 1];cout << endl;allroute++;memcpy(routemap[allroute], routemap[allroute - 1], sizeof(routemap[allroute - 1]));return;}for (int i = 1; i <= m; i++) {if (G[cur][i]&&!vis[i]) {vis[i] = 1;routemap[allroute][dep] = i;solve(i, dep + 1);vis[i] = 0;}}
}
bool isarrive(int cur) {if (cur == k) {return true;}for (int i = 1; i <= m; i++) {if (G[cur][i] && !vis[i]) {vis[i] = 1;if (isarrive(i))return true;}}return false;
}
int main() {int a, b; int kase = 0;while (cin >> k && k) {++kase;memset(G, 0, sizeof(G));memset(vis, 0, sizeof(vis));m = 0; allroute = 0;while (cin >> a >> b && a&&b) {G[a][b] = 1;G[b][a] = 1;m = max(max(a, b), m);}cout << "CASE " << kase << ":" << endl;if (isarrive(1)) {memset(vis, 0, sizeof(vis));vis[1] = 1;routemap[allroute][0] = 1;solve(1, 1);cout << "There are "<<allroute<< " routes from the firestation to streetcorner " << k << "." << endl;}else {//不可达cout << "There are 0 routes from the firestation to streetcorner " << k << "." << endl;}}//system("pause");return 0;
}

UVA208Firetruck 消防车(图的路径搜索)相关推荐

  1. 图的概念与主要类型、图模型的应用场景

    前言 图(Graph)是一个常见的数据结构,现实世界中有很多任务都可以抽象成图问题,比如社交网络,蛋白体结构,交通路网数据,以及很火的知识图谱等,甚至规则网络结构数据(如图像,视频等)也是图数据的一种 ...

  2. 技术总结:图算法、开源工具及其在工业界的应用场景概述

    知识图谱本质上是一种图结构,在图内部数据规模大且质量高.外部算力足够的情况下,充分利用好图算法,能够最大程度地发挥出其数据价值.实际上,图(Graph)是一个常见的数据结构,现实世界中有很多很多任务可 ...

  3. 2022年全球及中国公务汽车轮胎行业头部企业市场占有率及排名调研报告

    本文调研和分析全球公务汽车轮胎发展现状及未来趋势,核心内容如下: (1)全球市场总体规模,分别按销量和按收入进行了统计分析,历史数据2017-2021年,预测数据2022至2028年. (2)全球市场 ...

  4. 机器阅读理解算法集锦

    机器阅读理解算法集锦   机器阅读理解(Machine Reading Comprehension, MRC) 是一项基于文本的问答任务(Text-QA),也是非常重要和经典的自然语言处理任务之一.机 ...

  5. 论文分享 | 罗强等:GIS领域知识图谱进展研究

    本文转载于<测绘地理信息>2023年2月第48卷第1期 GIS 领域知识图谱进展研究 罗强1,2 胡中南1,2 王秋妹1,2 石伟伟1,2 贾玥3 1北京超图软件股份有限公司,北京,100 ...

  6. 全球及中国汽车取力器(PTO)行业销售策略及供需前景预测报告2022-2027

    全球及中国汽车取力器(PTO)行业销售策略及供需前景预测报告2022-2027 ================================================ [报告编号]: BG4 ...

  7. 独立钻石Solitaire算法求解

    独立钻石Solitaire算法求解 关键字 茶余饭后,休闲娱乐, 独立钻石,solitaire,DFS,剪枝. 摘要 茶余饭后,休闲娱乐. 百度略为查找,算法实现很多,但并不认为很多实现在实践中可以在 ...

  8. 适合初学者的数据结构_数据结构101:图-初学者的直观介绍

    适合初学者的数据结构 了解您每天使用的数据结构 (Get to know the data structures that you use every day) Welcome! Let's Star ...

  9. 再译《A *路径搜索入门》之一

    2019独角兽企业重金招聘Python工程师标准>>> ※※※  外语不好凑合着看吧,呵呵  ※※※ A *路径搜索入门 A* Pathfinding for Beginners 帕 ...

最新文章

  1. Linux top命令常见使用
  2. 青岛大学计算机系住哪个校区,青岛大学有几个校区及校区地址
  3. RDKit | 基于机器学习的化合物活性预测模型
  4. get,put,post,delete含义与区别
  5. linux共享内存与信号量的使用
  6. Maven集成指令总结
  7. python遍历文件_python遍历目录文件脚本的示例
  8. POJ 1007 DNA排序解题
  9. 通过Docker Cloud部署应用
  10. matlab图像中提取不连续的点_MATLAB边缘检测GUI设计
  11. C# 编译器选项 /platform(指定输出平台)32位程序运行到x64平台的问题
  12. 以下不是python内置函数的是_Python内置函数
  13. UA STAT687 线性模型II 最小二乘理论1 普通最小二乘法
  14. Java 语言被很多人抱怨语法繁琐、开发效率低、体系繁杂而笨重,为什么还有这么强的生命力,尤其是在企_-Chaz-_新浪博客
  15. 没去Google I/O 2018大会?这里有你想知道的一切…
  16. 关于hash(一):基本概念
  17. 单体架构与微服务架构区别
  18. 时空旅行的可能性(无聊研究社)
  19. 获取客户端mac地址 php,js获取客户端mac地址的方法
  20. Linux内核如何替换内核函数并调用原始函数

热门文章

  1. 双重检查(Double-Check)
  2. 自定义负载均衡策略:
  3. 依赖版本控制-pom文件介绍
  4. 自定义线程池-线程池类和测试类编写
  5. 使用RSA算法解析令牌
  6. MapReduce-流量统计求和-排序-Mapper和Reducer编写
  7. jQuery课程介绍、Query的介绍、Query初次体验、jQuery再次体验、jQuery中的顶级对象
  8. mysql_safe后重启_mysql无限重启是什么情况
  9. 《UCD火花集2:有效的互联网产品设计 交互/信息设计 用户研究讨论》一2.3 交互设计师容易犯的错误:把自己禁锢在解决方案之中...
  10. 《挖掘管理价值:企业软件项目管理实战》一2.4 软件设计过程