HDU 1548 A strange lift
2017-07-21 15:10
204 查看
//搜索注意已搜索标记,第一次忘了判断,wa了 // 第二次判断写错, #include<stdio.h> #include <string.h> #include <queue> using namespace std; struct node{ int pos; int step; node(int _pos, int _step):pos (_pos) ,step(_step) { } }; const int maxn = 1e3 + 5; int vis[maxn]; // int k[maxn]; int main(){ int n, a, b, ans = 0; while (scanf("%d", &n) != EOF && n != 0){ scanf("%d%d",&a, &b); for (int i = 1; i <= n; i++){ scanf("%d", &k[i]); } memset(vis,0,sizeof(vis)); queue <node> que; que.push(node(a,0)); ans = 0; while (!que.empty() ){ node tem = que.front() ; if (tem.pos == b) break; vis[tem.pos ] = 1; que.pop() ; if (tem.pos + k[tem.pos ] <= n && vis[tem.pos + k[tem.pos ]] == 0) { que.push(node(tem.pos + k[tem.pos ], tem.step + 1)) ; } if (tem.pos - k[tem.pos ] >= 1 && vis[tem.pos - k[tem.pos ]] == 0){ que.push(node(tem.pos - k[tem.pos ], tem.step + 1)); } } if (!que.empty() ){ printf("%d\n", que.front() .step); } else printf("-1\n"); } }
相关文章推荐
- 题解: HDU 1548 :A strange lift(BFS)
- hdu 1548 A strange lift(搜索:BFS)
- [最短路径、BFS] HDU 1548 - A strange lift
- HDU--杭电--1548--A strange lift--最短路
- hdu 1548 A strange lift(优先队列)
- hdu 1548 A strange lift (bfs)
- Hdu1548 A strange lift【简单bfs】
- 【BFS/Dijkstra】hdu 1548 A Strange Lift
- HDU 1548 A strange lift (简单最短路或BFS)
- hdu 1548 A strange lift (dijkstra算法)
- A strange lift HDU - 1548
- A strange lift HDU 1548 queue BFS 简单 水题
- HDU 1548 AStrangeLift
- hdu 1548 A strange lift
- HDU 1548 A strange lift
- hdu 1548 A strange lift(优先队列)
- HDU 1548 A strange lift(BFS)
- HDU 1548 A strange lift(简单BFS)
- HDU 1548 A strange lift bfs 宽搜解析
- hdu 1548 A strange lift (bfs)