练习2————1014
来源:互联网 发布:数据备份 方案 编辑:程序博客网 时间:2024/05/20 03:45
题目:A strange lift
题意:在一个N层高的楼上有一个电梯,电梯只有上下两个方向,在i层只能上升或者下降一个特定的数ki,给定一个起始楼层,问是否能到达指定楼层。
思路:运用搜索的方法。
感想:BFS是求最短的最优办法
代码:
#include<queue>
#include<iostream>
using namespace std;
int main()
{
int i,N,a,b,x,y;
bool v[201];
int k[201],s[201];
queue<int>Q;
while (cin>>N)
{
if(!N) break;
// Q.clear();
memset(v,0,sizeof(v));
memset(s,0,sizeof(s));
scanf("%d%d",&a,&b);
for (i=1;i<=N;i++)
{
scanf("%d",&k[i]);
}
Q.push(a);
x=Q.front();
v[x]=1;
while(x!=b)
{
y=k[x];
if(x+y<=N&&!v[x+y])
{
v[x+y]=1;
Q.push(x+y);
s[x+y]=s[x]+1;
}
if(x-y>=1&&!v[x-y])
{
v[x-y]=1;
Q.push(x-y);
s[x-y]=s[x]+1;
}
Q.pop();
if(Q.empty()) break;
x=Q.front();
}
if(x==b) cout<<s[x]<<endl;
else cout<<"-1"<<endl;
}
return 0;
}
- SQL练习—2
- 练习2————1014
- ACM第三次练习—1014
- 集合——练习2
- jQuery练习5——val()练习
- Map练习2—Primer1132
- 函数——练习
- 练习——ArrayList
- 练习——LinkedList
- 练习——HashMap
- 泛型——练习
- 继承——练习
- 蓝桥杯练习—1
- 情景模式—TabHostl练习
- SQL练习—4
- 单链表—练习
- ACM第二次练习—1013&1014
- 练习2————1002
- C#的Infinity和NaN
- Hibernate进行模糊查询
- Cordova 环境搭建(Window)
- JavaScript上传图片前预览
- c语言格式字符串 % lf 和 %f
- 练习2————1014
- 如何处理Permission denied: user=root, access=WRITE, inode="/user" 这类Hadoop权限问题问题
- X264编码
- linux 下安装 nginx
- spring中事务的管理基于xml和注解,以及spring在web中应用
- python 发邮件乱码的几种解决方法
- hadoop_案例_1
- join
- Git SSH Key生成