hdoj 1548 A strange lift(bfs)
2012-03-12 23:17
405 查看
【题目大意】:给出n层楼,每层楼可以乘坐电梯,规定在第i层乘坐的电梯移动的层数为ki,可以向上移动也可以向下移动,每移动一次要按一次电梯,且移动完不能低于1层,也不能高于n层。问从a到b最少按多少次电梯。
【解题思路】:bfs
【代码】:
【解题思路】:bfs
【代码】:
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <vector> #include <queue> #include <cmath> #include <string> #include <cctype> #include <map> #include <iomanip> using namespace std; #define eps 1e-8 #define pi acos(-1.0) #define inf 1<<30 #define pb push_back #define lc(x) (x << 1) #define rc(x) (x << 1 | 1) #define lowbit(x) (x & (-x)) #define ll long long int cnt[250]; int tmp,n,s,t; int mapp[250][5]; int vis[250]; void solve_cnt(){ queue<int> que; que.push(s); for (int i=1; i<=n; i++) cnt[i]=inf; memset(vis,0,sizeof(vis)); cnt[s]=0; vis[s]=1; while (!que.empty()){ int q; q=que.front(); que.pop(); if (mapp[q][0]!=0 && vis[mapp[q][0]]==0) { if (cnt[mapp[q][0]]>=cnt[q]+1) { cnt[mapp[q][0]]=cnt[q]+1; que.push(mapp[q][0]); vis[mapp[q][0]]=1; } } if (mapp[q][1]!=0 && vis[mapp[q][1]]==0) { if (cnt[mapp[q][1]]>=cnt[q]+1) { cnt[mapp[q][1]]=cnt[q]+1; que.push(mapp[q][1]); vis[mapp[q][1]]=1; } } } if (cnt[t]!=inf) printf("%d\n",cnt[t]); else printf("-1\n"); } int main() { while (~scanf("%d",&n)){ if (n==0) break; scanf("%d%d",&s,&t); memset(mapp,0,sizeof(mapp)); for (int i=1; i<=n; i++){ scanf("%d",&tmp); if (i-tmp>=1) {mapp[i][0]=i-tmp;} if (i+tmp<=n) {mapp[i][1]=i+tmp;} } solve_cnt(); } return 0; }
相关文章推荐
- HDOJ 1548 A strange lift (bfs)
- 【BFS】【HDOJ-1548】A strange lift
- hdoj 1548 A strange lift (BFS)
- HDU/HDOJ 1548 A strange lift BFS,DFS
- HDOJ 1548 A strange lift (BFS)
- (step4.2.4)hdu 1548(A strange lift——BFS)
- 【搜索之BFS】杭电 hdu 1548 A strange lift
- hdu1548 A strange lift(bfs)
- [最短路径、BFS] HDU 1548 - A strange lift
- HDU 1548 A strange lift(最短路&&bfs)
- (BFS)A strange lift--HDOJ
- hdu 1548 A strange lift (bfs、最短路)
- hdu 1548 A strange lift(水题,bfs)
- hdu 1548 A strange lift (bfs)
- HDU 1548 A strange lift (简单bfs)
- 最短路算法 Dijkstra算法 HDU HDOJ 1548 A strange lift ACM
- hdu 1548 A strange lift (bfs)
- HDU 1548 A strange lift bfs 宽搜解析
- hdu 1548 A strange lift (BFS)
- HDU 1548 - A strange lift(BFS)