HDU 1548 A strange lift
来源:互联网 发布:电影票房数据分析 编辑:程序博客网 时间:2024/06/05 14:56
代码bfs:
#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;int n,A,B;int lift[205];bool vis[205];int step[1005],loc[1005];queue<int> q;bool dis(int x){ if(x>=1&&x<=n) return true; return false;}int BFS(){ int front,tail; front=tail=0; loc[front++]=A; int up,down; while(front>tail) { int x=loc[tail++]; // cout<<x<<endl; if(x==B) break; up=x+lift[x]; down=x-lift[x]; if(!vis[up]&&dis(up)) { vis[up]=true; loc[front++]=up; step[up]=step[x]+1; } if(!vis[down]&&dis(down)) { vis[down]=true; loc[front++]=down; step[down]=step[x]+1; } } return step[B];}int main(){ while(scanf("%d",&n)!=EOF&&n) { scanf("%d%d",&A,&B); memset(lift,0,sizeof(lift)); int i,j; for(i=1;i<=n;i++) { scanf("%d",&lift[i]); vis[i]=false; step[i]=0; } if(A==B) printf("0\n"); else { int ans=BFS(); if(ans==0) printf("-1\n"); else { printf("%d\n",ans); } } } return 0;}
代码 Dijskra:
#include <iostream>#include <cstdio>#include <cstring>#define INF 0x7ffffusing namespace std;int n,A,B;int dp[205][205];int lift[205],dis[10005];bool vis[10005];void Dij(){ int i; for(i=0;i<=n;i++) { dis[i]=dp[A][i]; // cout<<dis[i]<<endl; vis[i]=true; } vis[A]=false; dis[A]=0; int min,k; for(i=1;i<=n;i++) { min=INF; for(int j=1;j<=n;j++) { if(vis[j]&&min>dis[j]) { min=dis[j]; k=j; } } if(min==INF) break; vis[k]=false; for(int j=1;j<=n;j++) { if(vis[j]&&dis[k]+dp[k][j]<dis[j]) { dis[j]=dis[k]+dp[k][j]; } } }}int main(){ while(scanf("%d",&n)!=EOF&&n) { scanf("%d%d",&A,&B); int i,j; for(i=0;i<=n;i++) for(j=0;j<=n;j++) dp[i][j]=INF; for(i=1;i<=n;i++) { scanf("%d",&lift[i]); if(i-lift[i]>0) dp[i][i-lift[i]]=1; if(i+lift[i]<=n) dp[i][i+lift[i]]=1; } Dij(); if(dis[B]==INF) printf("-1\n"); else printf("%d\n",dis[B]); } return 0;}
- A strange lift hdu 1548
- HDU 1548 A strange lift
- HDU 1548 A strange lift
- HDU 1548 A strange lift
- Hdu-1548 A strange lift
- HDU 1548 A strange lift
- HDU-1548-A strange lift
- hdu 1548 A strange lift
- HDU 1548-A strange lift
- HDU 1548 A strange lift
- hdu 1548 A strange lift
- hdu 1548 A strange lift
- HDU 1548 A strange lift
- hdu 1548 a strange lift
- HDU 1548 A strange lift
- HDU 1548 A strange lift
- hdu 1548 A strange lift
- hdu 1548 A strange lift
- POJ 2566 尺取法
- C语言创建柔性数组
- cocos2d-x学习日志(6) --触屏事件
- 每天一个OpenGL程序 第四篇 三角形的绘制
- PHP中,把$_SERVER['QUERY_STRING']转换为$_GET数组
- HDU 1548 A strange lift
- HTML select option 详解
- MyEclipse 使用技巧总结
- 数据结构与程序设计——C++语言描述(Data Structures & Program Design in C++) by Robert L.Kruse & Alexander J.Ryba
- 静默安装 Oracle
- 异常大讨论-抛出异常还是返回false
- 多线程中锁的实现
- 常用公式
- 公交查询系统