hdu1548 a strange lift
来源:互联网 发布:php网页自动生成html 编辑:程序博客网 时间:2024/06/05 18:33
这道题可以用BFS来做,也可以用最短路算法来做,建好图就可以了。
#include<stdio.h>#include<stdlib.h>int main(){ int a,B,i,n,u,v,j,min; int inf=99999999; int dis[220],b[220],e[220][220],k[220]; while(scanf("%d",&n),n!=0) { scanf("%d%d",&a,&B); for(i=1; i<=n; i++) scanf("%d",&k[i]); for(i=1; i<=n; i++) for(j=0; j<=n; j++) if(i==j) e[i][j]=0; else e[i][j]=inf; for(i=1; i<=n; i++)//输入边,注意当<=1或者>=n时电梯是不运行的; { if(i+k[i]<=n) e[i][i+k[i]]=1; if(i-k[i]>=1) e[i][i-k[i]]=1; } for(i=1;i<=n;i++) { dis[i]=e[a][i]; b[i]=0; } b[a]=1; for(i=1;i<n;i++) { min=inf; for(j=1;j<=n;j++) { if(dis[j]<min&&b[j]==0) { u=j; min=dis[j]; } } b[u]=1; for(v=1;v<=n;v++) { if(b[v]==0&&e[u][v]<inf&&dis[v]>dis[u]+e[u][v]) dis[v]=dis[u]+e[u][v]; } } if(dis[B]>=inf) printf("-1\n"); else printf("%d\n",dis[B]); } return 0;}
1 0
- hdu1548 A strange lift
- HDU1548 A strange lift
- HDU1548 A strange lift
- hdu1548 A strange lift
- HDU1548---A strange lift
- hdu1548 A strange lift
- hdu1548 a strange lift
- HDU1548-A strange lift
- Hdu1548 A strange lift
- HDU1548 A strange lift
- hdu1548 A strange lift
- HDU1548 A strange lift
- HDU1548-A strange lift
- hdu1548 [A strange lift] bfs
- HDU1548:A strange lift(BFS)
- HDU1548:A strange lift( BFS)
- HDU1548:A strange lift(Dijkstra)
- hdu1548 A strange lift(bfs)
- 【数组6】连续子数组的最大和
- 在Linux下基于tcp协议实现一个简单的通信
- leetcode 374. Guess Number Higher or Lower
- Matalb for 语句 操作大矩阵 优化
- Debug:尝试运行项目时出错:无法启动程序XXX 拒绝访问
- hdu1548 a strange lift
- jquer基本用法三 -ajax
- C语言基础知识
- ps___
- 创建一个Notification (通知)
- Codevs 1073 家族
- HTTP状态码206
- JavaScript的toString()和valueOf()区别到底是什么
- android背景选择器selector的用法