1014-A strange lift
2016-04-21 23:47
183 查看
同1013-A strange lift题
1.题号:1014-A strange lift
2.题意:电梯:输入:n个楼层,起始楼层,终止楼层。之后n个数据是每个楼层的可移动层数,既是可上可下的层数,固定的。
3.思路:用队列,从开始就2个选择,上或者下,,,限制条件是《0或者》n或者走过这层了。首先用个数组储存每个楼层的数字。从开始楼层开始广搜,压缩进队列去,下个状态,判断,可以则继续压缩,取出,再压缩,直到队列为空或者在中间就找到目标,则输出步数或-1。
4.感想:挺有意思的一个题,思路很简单。
5.AC代码:#include <iostream>
#include <cstring>
#include <queue>
using namespace std;
int arr[205],brr[205];
int start,finish,n;
struct dianti
{
int lift,step;
};
int bfs(void)
{
dianti t,k;
queue <dianti> q;
memset(brr,0,sizeof(brr));
t.lift=start;
t.step=0;
brr[t.lift]=1;
q.push(t);
while(!q.empty())
{
t=q.front();
q.pop();
if(t.lift==finish)
return t.step;
k.lift=t.lift-arr[t.lift];
if(k.lift>0 && k.lift<=n && !brr[k.lift])
{
k.step=t.step+1;
brr[t.lift]=1;
q.push(k);
}
k.lift=t.lift+arr[t.lift];
if(k.lift>0 && k.lift<=n && !brr[k.lift])
{
brr[t.lift]=1;
k.step=t.step+1;
q.push(k);
}
}
return -1;
}
int main()
{
int i;
while(cin>>n)
{
if(n==0)
break;
else
{
cin>>start>>finish;
for(i=1;i<=n;++i)
cin>>arr[i];
cout<<bfs()<<endl;
}
}
return 0;
}
1.题号:1014-A strange lift
2.题意:电梯:输入:n个楼层,起始楼层,终止楼层。之后n个数据是每个楼层的可移动层数,既是可上可下的层数,固定的。
3.思路:用队列,从开始就2个选择,上或者下,,,限制条件是《0或者》n或者走过这层了。首先用个数组储存每个楼层的数字。从开始楼层开始广搜,压缩进队列去,下个状态,判断,可以则继续压缩,取出,再压缩,直到队列为空或者在中间就找到目标,则输出步数或-1。
4.感想:挺有意思的一个题,思路很简单。
5.AC代码:#include <iostream>
#include <cstring>
#include <queue>
using namespace std;
int arr[205],brr[205];
int start,finish,n;
struct dianti
{
int lift,step;
};
int bfs(void)
{
dianti t,k;
queue <dianti> q;
memset(brr,0,sizeof(brr));
t.lift=start;
t.step=0;
brr[t.lift]=1;
q.push(t);
while(!q.empty())
{
t=q.front();
q.pop();
if(t.lift==finish)
return t.step;
k.lift=t.lift-arr[t.lift];
if(k.lift>0 && k.lift<=n && !brr[k.lift])
{
k.step=t.step+1;
brr[t.lift]=1;
q.push(k);
}
k.lift=t.lift+arr[t.lift];
if(k.lift>0 && k.lift<=n && !brr[k.lift])
{
brr[t.lift]=1;
k.step=t.step+1;
q.push(k);
}
}
return -1;
}
int main()
{
int i;
while(cin>>n)
{
if(n==0)
break;
else
{
cin>>start>>finish;
for(i=1;i<=n;++i)
cin>>arr[i];
cout<<bfs()<<endl;
}
}
return 0;
}
相关文章推荐
- 搜狗百度360市值齐跌:搜索引擎们陷入集体焦虑?
- 本人即将筹备败家日志,敬请期待!
- IE:使用搜索助手
- C++深度优先搜索的实现方法
- 基于文本的搜索
- php实现搜索一维数组元素并删除二维数组对应元素的方法
- 使用Sphinx对索引进行搜索
- asp 多关键词搜索的简单实现方法
- C#使用foreach语句搜索数组元素的方法
- WordPress中用于获取搜索表单的PHP函数使用解析
- JavaScript中数组的排序、乱序和搜索实现代码
- jquery ztree实现树的搜索功能
- C#编程实现Excel文档中搜索文本内容的方法及思路
- sqlserver中在指定数据库的所有表的所有列中搜索给定的值
- 可以用来搜索当前页面内容的js代码
- 全文搜索和替换
- javascript搜索自动提示功能的实现第1/3页
- iOS应用中UISearchDisplayController搜索效果的用法
- mysql 模糊搜索的方法介绍
- C#搜索文字在文件及文件夹中出现位置的方法