1 条题解
-
01891234736 LV 7 MOD @ 2019-07-16 19:30:18
/*奇怪的电梯*/ #include <bits/stdc++.h> using namespace std; struct state { int y; int step; }; int k[1008]; state f,t; bool ceng[10008]; int n,a,b; int BFS(state s) { queue<state>q; q.push(s); ceng[s.y]=1; while(!q.empty()) { t=q.front(); if(t.y==b) { return f.step; } t.step++; if(t.y<b) { f=t; f.y+=k[f.y]; if(ceng[f.y]==0) { q.push(f); ceng[f.y]=1; } } if(t.y-k[t.y]>=1) { f=t; f.y-=k[f.y]; if(ceng[f.y]==0) { q.push(f); ceng[f.y]=1; } } q.pop(); } return -1; } int main() { cin>>n>>a>>b; for(int i=1;i<=n;i++) cin>>k[i]; state x; x.y=a; x.step=0; cout<<BFS(x); }
- 1
信息
- ID
- 1018
- 难度
- 9
- 分类
- (无)
- 标签
- 递交数
- 1
- 已通过
- 1
- 通过率
- 100%
- 上传者