【题解-信息学奥赛一本通】1360:奇怪的电梯(lift)
题目1360奇怪的电梯(lift)题目描述大楼的每一层楼都可以停电梯而且第i层楼1≤i≤N上有一个数Ki(0≤Ki≤N。电梯只有四个按钮开关上下。上下的层数等于当前楼层上的那个数字。当然如果不能满足要求相应的按钮就会失灵。例如3 3 1 2 5代表了KiK13,K23,……从一楼开始。在一楼按“上”可以到4楼按“下”是不起作用的因为没有−2楼。那么从A楼到B楼至少要按几次按钮呢输入共有二行第一行为三个用空格隔开的正整数表示N,A,B(1≤N≤200,1≤A,B≤N)第二行为N个用空格隔开的正整数表示Ki。输出一行即最少按键次数,若无法到达则输出−1。时空限制1s / 64MB样例输入5 1 5 3 3 1 2 5样例输出3代码#includebits/stdc.husingnamespacestd;constintN20010;intn,st,ed,g[N],dis[N];intdx[4]{1,-1};voidbfs(intx){queueintq;q.push(x);dis[x]0;while(!q.empty()){inttq.front();q.pop();for(inti0;i2;i){intxxtg[t]*dx[i];if(xx1xxndis[xx]-1){q.push(xx);dis[xx]dis[t]1;}}}}intmain(){cinnsted;for(inti1;in;i)cing[i];memset(dis,-1,sizeofdis);bfs(st);coutdis[ed];return0;}结果