奇怪的电梯
Posted xrj1229
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了奇怪的电梯相关的知识,希望对你有一定的参考价值。
题面 http://ybt.ssoier.cn:8088/problem_show.php?pid=1360
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int q[32768],k[32768],a[32768]; bool b[32768]; int main() { memset(b,0,sizeof(b)); int x,y,n; scanf("%d%d%d",&n,&x,&y); for(int i=1;i<=n;i++) scanf("%d",&k[i]); q[1]=x; b[x]=1; int h=0,t=1; do { h++; for(int i=-1;i<=1;i++) { if((q[h]+k[q[h]]*i>0&&q[h]+k[q[h]]*i<=n)&&!b[q[h]+k[q[h]]*i]) { t++; q[t]=q[h]+k[q[h]]*i; b[q[h]+k[q[h]]*i]=1; a[t]=a[h]+1; } } }while(h!=t&&q[h]!=y); if(x==y)cout<<"0"<<endl; else if(q[h]==y)cout<<a[h]<<endl; else cout<<"-1"<<endl; return 0; }
以上是关于奇怪的电梯的主要内容,如果未能解决你的问题,请参考以下文章