hdu a strang lift
来源:互联网 发布:云计算四种部署模式 编辑:程序博客网 时间:2024/06/05 17:40
按得最短路做的,DP 搜索也能搞
#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#include <queue>using namespace std;#define MAX_N 10000#define INF 0xfffftypedef pair<int, int> P;int n,v,u;int G[MAX_N][MAX_N];int d[MAX_N];bool used[MAX_N];int a[MAX_N];void dijkstra(int v){ for(int i = 1;i <= n; i++){ d[i] = G[v][i]; } fill(used, used + n, false); d[v] = 0; used[v] = 1; for(int i = 2; i <= n; i++){ int flag = v,min = INF; for(int u = 1;u < n; u++){ if(!used[u] && d[u] < min){ flag = u; min = d[u]; } } used[flag] = 1; for(int j = 1; j <=n;j++){ if(!used[j] && G[flag][j] < INF){ int newd = d[flag] + G[flag][j]; if(newd < d[j]) d[j] = newd; } } }}int main(){ while(scanf("%d", &n) && n){ scanf("%d%d",&v, &u); for(int i = 1;i <= n; i++) for(int j = 1;j <= n; j++) G[i][j] = INF; for(int i = 1;i <= n; i++){ scanf("%d", &a[i]); G[i][i + a[i]] = 1; if(i >= a[i] + 1){ G[i][i - a[i]] = 1; } } dijkstra(v); if(d[u] >= INF) printf("-1\n"); else printf("%d\n", d[u]); } return 0;}
0 0
- hdu a strang lift
- HDU A strange lift
- HDU A strange lift
- A strange lift HDU
- A strange lift HDU
- HDU A strange lift
- 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 1874 畅通工程续
- leetcode做题总结,题目Longest Valid Parentheses 2012/02/29
- AS3 实现读取本地数据
- apache访问权限与验证
- 二叉查找树的简单C++实现
- hdu a strang lift
- cocosbuilder源码编译
- hd 2070 Fibbonacci Number
- hdoj -2603 Bone Collector
- ny 13 斐波那契额数列
- ACdream 1154 Lowbit Sum(数学:推理)
- 社会心理学(一)
- 详细解析C语言中的sizeof
- HDU2159:FATE(二维完全背包)