题意:找出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. noi 2728 摘花生

    题目链接: 很像上一题,加上自己本身,选最优值. http://noi.openjudge.cn/ch0206/2728/ http://paste.ubuntu.com/23402493/

  2. bat 自动编译运行

    @echo off g++ %1 -Wall -Wextra --std=c++98 -O3 -DNDEBUG -D_NDEBUG -D_GLIBCXX_NO_ASSERT ^ -U_STLP_DEB ...

  3. loadrunner目录分析

    analysis templates——分析模板 可以制定自己的模板保存到analysis templates下 bin——可执行程序 注意里面的chm帮助文档,有c语言的函数帮助文档 bincert ...

  4. zabbix脚本报警

    zabbix问端设置: 1,设置报警类型 2.设置用户及媒体类型 send_to 就是zabbix输出的$1,脚本中药发给谁 3.设置触发器和动作 触发器 test.temp_conn (自己写一个简 ...

  5. jq 移除包含某个字符串的类名js

    el.removeClass (function (index, css) { return (css.match (/(^|\s)star\S+/g) || []).join(' ');//移除以“ ...

  6. C语言细节——献给入门者(三)

    C语言细节——献给入门者(三) >>主题:关于强制类型转换 先来瞎扯下强制类型转换,c语言有很多数据类型,long,short,int,float,double,bool,char等等.当 ...

  7. MYSQL -NOSQL -handlersocket

    一个MYSQL的插件,让MYSQL支持NOSQL 好处,跟MYSQL公用数据.比普通CACHE方便.普通CACHE有同步数据问题 坏处,不兼容MEMCAHE,跟MEMCAHE一样没安全控制 编译与安装 ...

  8. mysql 关键字于数据库字段于关键字冲突的问题

    如果数据库存储字段 为MySQL关键字,那么在查询或者其他操作时会出错.那么我们应该怎么办, 可能有些人会说,换个字段不就好了啊.当然这样也是可以的,完全没问题. 然而,如果是在无法对数据库进行修改和 ...

  9. vue服务端渲染

    这篇文章写得还蛮好https://segmentfault.com/a/1190000006701796 从官方网站下载了例子看,用es6写的,还好之前看过es6不然都看不懂,正好es6的东西一起熟悉 ...

  10. maven入门探讨

    java项目最恶心的一点莫过于需要使用大量的jar.每次引用jar的时候都要自己手动去各地寻找,然后导入到项目的指定文件夹当中最后还要添加Path.这无疑是一项工作量巨大的工作,同时如果控制不当就会提 ...