hdu 1548 A strange lift
来源:互联网 发布:赌博官网php源码 编辑:程序博客网 时间:2024/06/01 13:26
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1548
简单的bfs。。。
#include<algorithm>#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>#include<vector>#include<queue>#include<map>using std::cin;using std::cout;using std::endl;using std::find;using std::sort;using std::map;using std::pair;using std::vector;using std::queue;#define pb(e) push_back(e)#define sz(c) (int)(c).size()#define mp(a, b) make_pair(a, b)#define all(c) (c).begin(), (c).end()#define iter(c) decltype((c).begin())#define cls(arr,val) memset(arr,val,sizeof(arr))#define cpresent(c, e) (find(all(c), (e)) != (c).end())#define rep(i, n) for (int i = 0; i < (int)(n); i++)#define tr(c, i) for (iter(c) i = (c).begin(); i != (c).end(); ++i)const int Max_N = 210;const int dx[] = { -1, 1 };typedef unsigned long long ull;bool vis[Max_N];int N, A, B, arr[Max_N];struct Node { int x, s; Node(int i = 0, int j = 0) :x(i), s(j) {}};void bfs() { cls(vis, 0); queue<Node> que; que.push(Node(A, 0)); vis[A] = true; while (!que.empty()) { Node tp = que.front(); que.pop(); if (tp.x == B) { printf("%d\n", tp.s); return; } rep(i, 2) { int nx = dx[i] * arr[tp.x] + tp.x; if (nx < 0 || nx > N || vis[nx]) continue; que.push(Node(nx, tp.s + 1)); vis[nx] = true; } } puts("-1");}int main() {#ifdef LOCAL freopen("in.txt", "r", stdin); freopen("out.txt", "w+", stdout);#endif while (~scanf("%d", &N) && N) { scanf("%d %d", &A, &B); rep(i, N) scanf("%d", &arr[i + 1]); bfs(); } return 0;}
0 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
- 北京在哪里捐献肾可以有偿多少钱
- Android快速开发之appBase——实战《购物车》
- 11111111111111111111111111
- 单词学习-长久的过程
- HDU5246 超级赛亚ACMer
- hdu 1548 A strange lift
- ubutnu12.10安装xen4.2.1以及remus和DRBD
- ubuntu14.04安装cuda 7.0出错
- 安卓小技巧--项目总结(二)
- codeforces 553D Nudist Beach 二分+bfs
- 8259A中断控制器
- CStatic + CImage 实现简单的图片显示控件
- RESTful HTTP的实践
- IOS-C 语言 Lesson One 变量