UVA 208 (DFS)
题意:找出1到T的所有路径;
坑点:一开始以为是到终点,读错了题意,没测试第二个样例,结果WA了4遍,坑大了;
#include <iostream>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <sstream>
#include <algorithm>
#define Max 2147483647
#define INF 0x7fffffff
#define N 90000+2
#define M 40000
#define ll long long
#define mem(a,b) memset(a,b,sizeof(a))
#define repu(i, a, b) for(int i = (a); i < (b); i++)
#define repd(i, a, b) for(int i = (a-1); i >= (b); i--)
const double PI=-acos(-1.0);
using namespace std;
const int maxn = ;
int t = , v, sum, T;
int rec[],vis[];
int g[][] ,floyd[][];
void dfs(int x,int n)
{
if(x==T)///到终点输出
{
printf("%d" ,);
repu(i,,n-)
printf(" %d",rec[i]);
printf(" %d\n",T);
sum++;
return ;
}
repu(i,,v+)
{
if(!vis[i]&&g[x][i]==&&floyd[T][i]!=maxn)
{///i点能到达终点+x,i通路+未访问过
rec[n]=i;
vis[i]=;
dfs(i,n+);
vis[i]=;
}
}
}
int main()
{
int x, y, cas = ;
while (~scanf("%d", &T))
{
v = ;
repu(i,,)
repu(j,,)
g[i][j] = floyd[i][j] = maxn;
while(scanf("%d%d", &x, &y) && (x || y))
{
g[x][y] = g[y][x] = ;///无向图
floyd[x][y] = floyd[y][x] = ;
v = max(v,max(x,y));///找最大点
}
for(int k = ; k <= v; k++)///弗洛伊德算法找最短路,判断两点之间是否是通路
for (int i = ; i <= v; i++)
for (int j = ; j <= v; j++)
floyd[i][j] = min(floyd[i][j],floyd[i][k] + floyd[k][j]);
vis[] = ;
sum = ;
printf("CASE %d:\n", cas++);
dfs(, );///从第一组数找起
printf("There are %d routes from the firestation to streetcorner %d.\n", sum, T);
}
return ;
}
DFS
UVA 208 (DFS)的更多相关文章
- UVa 208 消防车(dfs+剪枝)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- UVA - 208 Firetruck(并查集+dfs)
题目: 给出一个结点d和一个无向图中所有的边,按字典序输出这个无向图中所有从1到d的路径. 思路: 1.看到紫书上的提示,如果不预先判断结点1是否能直接到达结点d,上来就直接dfs搜索的话会超时,于是 ...
- UVA 572 (dfs)
题意:找出一块地有多少油田.'@'表示油田.找到一块就全部标记. #include<cstdio> #define maxn 110 char s[maxn][maxn]; int n,m ...
- UVA 11853 [dfs乱搞]
/* 大连热身E题 不要低头,不要放弃,不要气馁,不要慌张 题意: 在1000×1000的格子内有很多个炮弹中心,半径给定. 为某人能否从西部边界出发,从东部边界走出. 不能输出不能,能的话输出最北边 ...
- UVA 11181 dfs 概率
N friends go to the local super market together. The probability of their buying something from them ...
- UVa 11210 (DFS) Chinese Mahjong
大白书第一章的例题,当时看起来很吃力,现如今A这道题的话怎么写都无所谓了. 思路很简单,就是枚举胡哪张牌,然后枚举一下将牌,剩下如果能找到4个顺子或者刻子就胡了. 由于粗心,34个字符串初始化写错,各 ...
- Uva 208 - Firetruck
[题目链接]http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&p ...
- UVa 208 - Firetruck 回溯+剪枝 数据
题意:构造出一张图,给出一个点,字典序输出所有从1到该点的路径. 裸搜会超时的题目,其实题目的数据特地设计得让图稠密但起点和终点却不相连,所以直接搜索过去会超时. 只要判断下起点和终点能不能相连就行了 ...
- UVA - 208 Firetruck(消防车)(并查集+回溯)
题意:输入着火点n,求结点1到结点n的所有路径,按字典序输出,要求结点不能重复经过. 分析:用并查集事先判断结点1是否可以到达结点k,否则会超时.dfs即可. #pragma comment(link ...
随机推荐
- Spring中的事物管理,用 @Transactional 注解声明式地管理事务
事物: 事务管理是企业级应用程序开发中必不可少的技术, 用来确保数据的 完整性和 一致性. 事务就是一系列的动作, 它们被当做一个单独的工作单元. 这些动作要么全部完成, 要么全部不起作用 事务的四 ...
- 回传数据startActivityForResult()
1.调用者Activity01开启新的界面选用startActivityForResult(intent,requestCode);在Activity01中Intent intent=new Inte ...
- Unity3D 材质球设置参数无效果的解决方法
要设置shader里有下划线的属性名,而不是后面字符串的属性名. Color tmp = ,,,alpha); mat.SetColor("_Color", tmp);
- double函数和int函数
可以看到,当tensor全是double型时,int函数会把所有元素取整,从1.5可以看出,不是四舍五入,而是取整.double函数又把整数型元素变成double型. th> a 0.0000 ...
- ArcgisAdd-In开发入门实例
1.开发环境 Vs2012+Arcgis10.2+win7 64bit 2.实现代码 首先在VS2012中新建一个解决方案,命名AddInTest. 接着,给解决方案AddInTest新建一个项目: ...
- CentOS7 续续
1.配置网络,虚拟机为桥接模式,IP地址为 192.168.100+学号/24,配置完成后可以通过ping物理机192.168.100段,或者ping 192.168.100.140验证2.通过临时与 ...
- ConsensusClusterPlus根据基因表达量对样品进行分类
#http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2881355/ 一致聚类方法,采用重抽样方法来验证聚类合理性. library(ALL)data(ALL)d ...
- FTPS链接服务器
一.首先登录ftp服务器:命令行 lftp user@ip 上传:put 下载: get 二. 关于FTP传输模式与传输的方式 众所周知,FTP传输有两种工作模式,Active Mode和Pass ...
- 【PHP】基于ThinkPHP框架搭建OAuth2.0服务
[PHP]基于ThinkPHP框架搭建OAuth2.0服务 http://leyteris.iteye.com/blog/1483403
- 【matlab】膨胀
clear all;close all; BW=zeros(9,10); BW(4:6,4:7) =1 imshow(BW) hold on SE=strel('square',3) BW2=imdi ...