UVa 208 Firetruck【回溯】
2024-08-31 13:55:41
题意:给出一个n个节点的无向图,以及某个节点k,按照字典序从小到大输出从节点1到节点k的所有路径
看的题解
http://blog.csdn.net/hcbbt/article/details/9755147
因为节点数很少(小于20),所以可以先用floyd处理一下,判断一点是否能够到达终点
然后就像紫书里面枚举排列那样的去挨个找出字典序从小到大的路径
题解里面说到的无回溯的走遍和终点相连的所有点,他写的代码是判断的d[en][i],判断终点到i点是否可达
写成d[i][en]也能过,因为是无向图
#include<iostream>
#include<cstdio>
#include<cstring>
#include <cmath>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<algorithm>
using namespace std; #define foreach(i,c) for (__typeof(c.begin()) i = c.begin(); i != c.end(); ++i) typedef long long LL;
const int INF = (<<)-;
const int mod=;
const int maxn=; int d[maxn][maxn],rute[maxn],vis[maxn];
int en,n,ans; void dfs(int x,int cnt){
if(x==en){
printf("");
for(int i=;i<cnt-;i++) printf(" %d",rute[i]);
printf(" %d\n",en);
ans++;
return;
} for(int i=;i<=n;i++){
if(!vis[i]&&d[x][i]==&&d[i][en]!=INF){ rute[cnt]=i;
vis[i]=;
dfs(i,cnt+);
vis[i]=;
}
}
} int main(){
int kase=;
while(scanf("%d",&en)!=EOF){
int u,v;
n=-;
for(int i=;i<=;i++){
for(int j=;j<=;j++) {
d[i][j]=INF;
}
} while(scanf("%d %d",&u,&v)&&(u||v)){
d[u][v]=d[v][u]=;
n=max(max(u,v),n);//找出这张图里面最大的点的标号
} for(int k=;k<=n;k++)
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
d[i][j]=min(d[i][j],d[i][k]+d[k][j]); ans=;
memset(vis,,sizeof(vis)); printf("CASE %d:\n", ++kase);
dfs(,);
printf("There are %d routes from the firestation to streetcorner %d.\n", ans, en);
}
return ;
}
不知道是不是真的理解了的说啊-----
加油啊---g00000000000
最新文章
- ASP.NET Core 中文文档 第四章 MVC(4.1)Controllers, Actions 和 Action Results
- [转载]《民航科技》2012年4月专家论坛:程延松《关于中国民航SWIM框架及技术实现探讨》
- loadrunner获取本机的机器名称
- CMS .NET 程序框架 从2.0/3.5升级到4.0 版本后 需要调整的地方
- 对css中clear元素的理解
- Python全栈---5.1---装饰器
- php支付接口,代付、感悟
- Hadoop基础教程之搭建开发环境及编写Hello World
- maven 仓库下载缓慢,怎么解决
- w3c盒子模型与ie盒子模型
- 关于C++与Java中虚函数问题的读书笔记
- left join 关联条件位置
- 瑞柏匡丞:app商业价值如何体现
- baidu-fex 精彩文章
- 时序数据库InfluxDB:简介及安装
- 后台调用前台js方法
- LinkedList的自定义实现
- VMware Workstation “以独占方式锁定此配置文件失败。可能其它正在运行VMware进程在使用此配置文件”
- 如何在windows server 2008 部署asp.net mvc
- 结构之美——优先队列基本结构(四)——二叉堆、d堆、左式堆、斜堆
热门文章
- DB-MySQL:目录
- 大量文件时使用ls
- xBIM 高级01 IFC多模型合并
- MetaSploit攻击实例讲解------社会工程学set攻击(kali linux 2016.2(rolling))(详细)
- 关于Tool接口--------hadoop接口:extends Configured implements Tool 和 ToolRunner.run
- Glide错误java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
- .NET深入解析LINQ框架2
- KVO VS isa : KVO 建立在 KVC 之上
- nginx 子进程 woker process 启动失败的问题
- .NET Framework 3.5 无法安装以下功能 安装错误:0x800F0906(客户端加域后出现)