UVA 208(p214)----Firetruck
2016-02-25 22:32
363 查看
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> using namespace std; int g[100][100],v[100],en,n,a[100],sum,m[100][100]; void floyd() { for(int k=1; k<=n; k++) for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) g[i][j]=g[i][j]||(g[i][k]&&g[k][j]); } void solve(int u,int num) { if(u==en) { sum++; for(int i=0; i<num-1; i++) printf("%d ",a[i]); printf("%d\n",a[num-1]); return; } else for(int i=1; i<=n; i++) { if(!v[i]&&g[i][en]&&m[u][i]) { v[i]=true; a[num]=i; solve(i,num+1); a[num]=0; v[i]=false; } } } int main() { // freopen("out.out","w",stdout); int cas=0,x,y; while(scanf("%d",&en)!=EOF) { sum=0; cas++; n=0; memset(g,0,sizeof(g)); memset(v,0,sizeof(v)); memset(a,0,sizeof(a)); memset(m,0,sizeof(m)); v[1]=true; a[0]=1; while(scanf("%d%d",&x,&y)==2&&x) { // cout<<x<<" flj "<<y<<endl; g[x][y]=true; g[y][x]=true; m[x][y]=true; m[y][x]=true; n=max(max(n,x),y); } // cout<<n<<endl; floyd(); printf("CASE %d:\n",cas); solve(1,1); printf("There are %d routes from the firestation to streetcorner %d.\n",sum,en); } return 0; }题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=4&page=show_problem&problem=144
相关文章推荐
- iOS开发Debug之去掉tableView的headerview的粘性
- 研究一下TForm.WMPaint过程(也得研究WM_ERASEBKGND)——TForm虽然继承自TWinControl,但是自行模仿了TCustomControl的全部行为,一共三种自绘的覆盖方法,比TCustomControl还多一种
- JSBinding + SharpKit / 编译 Cs 成 Js
- 动态创建标记
- servlet学习(可以使用jdbc)
- 理解PHP中会话控制
- UVA 140(p196)----Bandwidth
- Servlet_01_介绍(续)
- IOS学习 查看UIBarButtonSystemItem 类型图片 / pageControl的使用
- 【JAVA】antlr.collections.AST.getLine()I异常
- UVA 129(p195)----Krypton Factor
- Linux Framebuffer驱动剖析之一—软件需求
- Linux Framebuffer驱动剖析之一—软件需求
- union和struct类型的大小计算
- 【解决方法】友盟分享 已安装QQ,但总提示“没有安装手机QQ客户端”
- Java String详解
- Linux Framebuffer驱动剖析之一—软件需求
- Struts2 自定义下拉框标签Tag
- Struts2 自定义下拉框标签Tag
- Struts2 自定义下拉框标签Tag