sdau-2 1013 1014
来源:互联网 发布:图片视频制作软件 编辑:程序博客网 时间:2024/05/16 11:58
描述:
诡异电梯
有个电梯,每层有个数n,如果是上到那一层,就再上n层,同理,下到那一层,就再下降n层。输入起始,重点,问要最少按几次电梯运行键
输入
5 1 53 3 1 2 50输出3思路:基础广搜,分上下两种状态,然后向队列中push就行了。1013 1014重复代码:#include<iostream>#include<cstring>#include<queue>using namespace std;struct lift{ int x; int t;};int main() { //freopen("r.txt","r",stdin); int ww[2000],c[2000]; lift n1,n2,m; queue<lift> Q; int n,a,b,i,e,z; while(cin>>n&&n!=0) { memset(c,0,sizeof(c)); cin>>a>>b; for(i=1;i<=n;i++) { cin>>ww[i];c[i]=0; } e=0; n1.x=a; n1.t=0; Q.push(n1); c[n1.x]=1; while(!Q.empty()) { m=Q.front(); Q.pop(); if(m.x==b) { e=1;break; } n1.x=m.x-ww[m.x]; n2.x=m.x+ww[m.x]; if(n1.x>0&&n1.x<=b&&!c[n1.x]) { n1.t=m.t+1; c[n1.x]=1; Q.push(n1); } if(n2.x>0&&n2.x<=b&&!c[n2.x]) { n2.t=m.t+1; c[n2.t]=1; Q.push(n2); } } while(!Q.empty()) { Q.pop(); } if(e) cout<<m.t<<endl; else cout<<"-1"<<endl; } return 0;}
0 0
- sdau-2 1013 1014
- SDAU课程练习2 1013
- SDAU课程练习2 1014
- SDAU课程练习1013
- SDAU练习二1013
- SDAU dp专题 1013
- sdau三 1013
- SDAU课程练习1014
- SDAU练习二1014
- SDAU dp专题 1014
- SDAU练习三 1014
- sdau三 1014
- sdau-2 1001
- sdau-2 1002
- sdau-2 1003
- sdau-2 1008
- sdau-2 1012
- sdau-2 1010
- 训练2 4题
- response.sendRedirect()与request.getRequestDispatcher().forward()区别
- Hadoop MapReduce多表关联程序
- Some Basic Concepts in Image Steganography
- Animation and Transitions in Qt Quick | Qt Quick 5
- sdau-2 1013 1014
- 数素数,PAT,1013
- acm 2 1024 Sequence one
- 计算机视觉和图像处理常用的一些标准图片
- 利用Java heap dump查找、分析问题
- wso2esb 4.9.0中无法启动Axis2Server的解决办法
- asp.net 输入框的TextBox的Enabled属性
- Maven 创建 Spring MVC 项目
- 高性能 PHP socket 框架 Workerman