题意:找出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)的更多相关文章

  1. UVa 208 消防车(dfs+剪枝)

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  2. UVA - 208 Firetruck(并查集+dfs)

    题目: 给出一个结点d和一个无向图中所有的边,按字典序输出这个无向图中所有从1到d的路径. 思路: 1.看到紫书上的提示,如果不预先判断结点1是否能直接到达结点d,上来就直接dfs搜索的话会超时,于是 ...

  3. UVA 572 (dfs)

    题意:找出一块地有多少油田.'@'表示油田.找到一块就全部标记. #include<cstdio> #define maxn 110 char s[maxn][maxn]; int n,m ...

  4. UVA 11853 [dfs乱搞]

    /* 大连热身E题 不要低头,不要放弃,不要气馁,不要慌张 题意: 在1000×1000的格子内有很多个炮弹中心,半径给定. 为某人能否从西部边界出发,从东部边界走出. 不能输出不能,能的话输出最北边 ...

  5. UVA 11181 dfs 概率

    N friends go to the local super market together. The probability of their buying something from them ...

  6. UVa 11210 (DFS) Chinese Mahjong

    大白书第一章的例题,当时看起来很吃力,现如今A这道题的话怎么写都无所谓了. 思路很简单,就是枚举胡哪张牌,然后枚举一下将牌,剩下如果能找到4个顺子或者刻子就胡了. 由于粗心,34个字符串初始化写错,各 ...

  7. Uva 208 - Firetruck

    [题目链接]http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&p ...

  8. UVa 208 - Firetruck 回溯+剪枝 数据

    题意:构造出一张图,给出一个点,字典序输出所有从1到该点的路径. 裸搜会超时的题目,其实题目的数据特地设计得让图稠密但起点和终点却不相连,所以直接搜索过去会超时. 只要判断下起点和终点能不能相连就行了 ...

  9. UVA - 208 Firetruck(消防车)(并查集+回溯)

    题意:输入着火点n,求结点1到结点n的所有路径,按字典序输出,要求结点不能重复经过. 分析:用并查集事先判断结点1是否可以到达结点k,否则会超时.dfs即可. #pragma comment(link ...

随机推荐

  1. NumberToChineseConverter.cs

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...

  2. Packets(模拟 POJ1017)

    Packets Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 47750 Accepted: 16182 Description ...

  3. 关于file的上传文件

    http://blog.csdn.net/wclxyn/article/details/7090575/

  4. MySql_十六进制值

    十六进制值 MySQL支持十六进制值.在数字上下文中,十六进制数如同整数(64位精度).在字符串上下文,如同二进制字符串,每对十六进制数字被转换为一个字符: mysql> SELECT x'4D ...

  5. mac攻略(二) -- 简单配置php开发环境

    最简单直接的方式还是使用 Mac 上自带的 Apache 和 PHP.   1.启动 Apache 1>启动apache $sudo apachectl start; 2>启动后,在浏览器 ...

  6. linux权限,所有者、所在组、其他组(其他人员),chmod,chown

    用户组 在linux中的每个用户必须属于一个组,不能独立于组外.在linux中每个文件有所有者.所在组.其它组的概念 - 所有者 - 所在组 - 其它组 - 改变用户所在的组 所有者 一般为文件的创建 ...

  7. 又见JavaWeb的中文乱码

    简单翻了一下记录,我已经写了至少4篇关于编码和乱码的博客了,每次都觉得自己懂了. 实际上,这次的遭遇证明了"真懂"是一种很难达到的境界,吾辈仍需努力! 一.背景是这样子的: .一个 ...

  8. C library function - rewind()

    Description The C library function void rewind(FILE *stream) sets the file position to the beginning ...

  9. iOS核心动画学习整理

    最近利用业余时间终于把iOS核心动画高级技巧(https://zsisme.gitbooks.io/ios-/content/chapter1/the-layer-tree.html)看完,对应其中一 ...

  10. C#_批量插入数据到Sqlserver中的四种方式

    先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快的,因为你生成一个GUID算法所花的时间肯定比你从数据表中重新查询上一条记 ...