UVA 208 Firetruck
2016-03-31 21:59
330 查看
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19858
题意:给一个无向图,起点为1,终点为k,按照字典序输出所有可行路径。
思路:可以先用floyd判断一下图的连通性,对于那些不能到达目标的点,我们一开始就排除掉,然后就用dfs+回溯搜索一下即可。
题意:给一个无向图,起点为1,终点为k,按照字典序输出所有可行路径。
思路:可以先用floyd判断一下图的连通性,对于那些不能到达目标的点,我们一开始就排除掉,然后就用dfs+回溯搜索一下即可。
#include <cstdio> #include <cmath> #include <cstring> #include <string> #include <cstdlib> #include <iostream> #include <algorithm> #include <stack> #include <map> #include <set> #include <vector> #include <sstream> #include <queue> #include <utility> using namespace std; #define rep(i,j,k) for (int i=j;i<=k;i++) #define Rrep(i,j,k) for (int i=j;i>=k;i--) #define Clean(x,y) memset(x,y,sizeof(x)) #define LL long long #define ULL unsigned long long #define inf 0x7fffffff #define mod %100000007 #define mp make_pair #define fi first #define se second #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define mid int m=(l+r)>>1 bool b[30][30]; int aim; int T = 0; int a[30][30]; bool flag[30]; int tx,ty; int ans; int m; int out[30]; void dfs(int x,int k) { if ( x == aim ) { ans++; rep(i,1,k) printf("%d%c",out[i],(i==k)?'\n':' '); return; } rep(i,1,m) if ( flag[i] && a[x][i] ) { flag[i] = false; out[k+1] = i; dfs(i,k+1); flag[i] = true; } } int main() { while(cin>>aim) { //if ( T++ ) puts(""); printf("CASE %d:\n",++T); m = 1; Clean(a,false); Clean(b,false); Clean(flag,true); ans = 0; while(~scanf("%d%d",&tx,&ty)) { m = max( m , max(tx,ty) ); if ( tx + ty == 0 ) break; a[tx][ty] = true; a[ty][tx] = true; b[ty][tx] = true; b[tx][ty] = true; } rep(i,1,m) rep(j,1,m) rep(k,1,m) if ( b[i][k] && b[k][j] ) b[i][j] = true; rep(i,1,m) if ( !b[i][aim] && i!=aim ) flag[i] = false; flag[1] = false; out[1] = 1; dfs(1,1); printf("There are %d routes from the firestation to streetcorner %d.\n",ans,aim); } return 0; }
相关文章推荐
- hadoop生态系统学习之路(五)hbase的简单使用
- js 事件监听封装
- Dubbo框架介绍
- 1007. Maximum Subsequence Sum (25)
- WindowsOptionalFeature 与 WindowsFeature
- HDU 5607 graph(矩阵快速幂)
- Svn+Apache服务器搭建指南
- URAL 1793 Tray 2
- C++第二次实验上机报告(计算标准体重)
- Apache Hadoop2.6.2 小集群搭建
- STL概念
- IOS开发探索(一):CocoalPods相关
- android 文字描边
- 用Eclipse新建一个web项目没有自动生成web.xml
- 精简指令集和复杂指令集的区别
- sdut1252 进制转换
- ZOJ 2829 Beautiful Number
- 杨辉三角
- 在X-window下安装gcc
- 接口 --- Java