这个题我见过!!!

我之前在石油大学的网站上做练习赛,提高了很多,这个题是我第一次在比赛里见到深搜。

当时蒙蔽的一批,现在发现好简单……

这个题和普通的深搜没什么区别,甚至可以说简单了,因为这个是1维的,别的是二维的(见到老熟人,我快高兴疯了)。

我们先来个代码吧,解释什么的写进注释里了:

#include<iostream>
#include<cstdio>
using namespace std;
long long a,b,n;
long long k[300];
long long t,w,bj2=0;
long long sz[1000],bs[1000],bj[300];//不想用queue,就用数组了
void bfs()
{
while(w<=t)
{
if(sz[w]==b)//到地方了,输出一下用了多少步
{
bj2=1;//是可以到达目的地的
cout<<bs[w]<<endl;
return;
}
if(sz[w]+k[sz[w]]<=n&&bj[sz[w]+k[sz[w]]]==0)//向上移动,并且到达的楼层没来过,而且不会飞出去。
{
t++;
sz[t]=sz[w]+k[sz[w]];//加一个新楼层
bs[t]=bs[w]+1;//来这层楼用了几步
bj[sz[w]+k[sz[w]]]=1;//现在来过了
}
if(sz[w]-k[sz[w]]>=1&&bj[sz[w]-k[sz[w]]]==0)//向下移动,并且到达的楼层没来过,而且不会进入地下室
{
t++;
sz[t]=sz[w]-k[sz[w]];//加进来一个新楼层
bs[t]=bs[w]+1;//来这层楼用了几步
bj[sz[w]-k[sz[w]]]=1;//现在来过了
}
w++;
}
}
int main()
{
scanf("%lld%lld%lld",&n,&a,&b);
sz[t]=a;//初始在第a层
bs[t]=0;//不需要移动
bj[a]=1;//第a层来过了
for(int i=1;i<=n;i++)
{
scanf("%lld",&k[i]);//输入
}
bfs();//搜索
if(bj2==0)//如果到达不了目的地,输出-1;
{
cout<<-1<<endl;
}
return 0;
}

是不是简单的不能再简单了,真是个良心题。

集训作业 洛谷P1135 奇怪的电梯的更多相关文章

  1. 【DFS与BFS】洛谷 P1135 奇怪的电梯

    题目:奇怪的电梯 - 洛谷 (luogu.com.cn) 因为此题数据范围较小,有dfs及bfs等多种做法. DFS 比较正常的dfs,注意vis数组一定要回溯,不然会漏情况 例如这个数据 11 1 ...

  2. 洛谷 P1135 奇怪的电梯 【基础BFS】

    题目链接:https://www.luogu.org/problemnew/show/P1135 题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第 i 层 ...

  3. TYVJ P3522 &&洛谷 P1135 奇怪的电梯 Label:bfs

    题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N).电梯只有四个按钮:开 ...

  4. 洛谷 P1135 奇怪的电梯

    题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N).电梯只有四个按钮:开 ...

  5. 洛谷P1135 奇怪的电梯

    题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第i层楼 (1<=i<=N)上有一个数字Ki(0<=Ki<=N).电梯只有四个按钮: ...

  6. 洛谷 P1135 奇怪的电梯 (dfs)

    题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N).电梯只有四个按钮:开 ...

  7. 洛谷P1135 奇怪的电梯【bfs】

    题目:https://www.luogu.org/problemnew/show/P1135 题意: 一共有n层楼,在第i层可以往上或往下$k_i$层. 问从$a$层到$b$层至少需要多少乘多少次电梯 ...

  8. 洛谷P1135 奇怪的电梯 BFS例题

    好,这是一道黄题.几个月前(2017.10.29)的我拿了可怜的20分. 这是当年的蒟蒻代码 #include <cstdio> #include <iostream> #in ...

  9. 洛谷 P1135 奇怪的电梯 (DFS)

    题意:有一\(n\)层高的大楼,每层楼都只能在合法情况下上\(x\)层或者下\(x\)层,问你是否能从\(a\)层楼坐电梯到\(b\)层楼,输出最小步数. 题解:直接dfs搜,\(flo\)表示层数, ...

随机推荐

  1. Linux常用命令之文件磁盘管理

    前言 本文知识点是曾经学习过程中收录整理的,方便学习使用. 一>Linux常用基本命令 Linux命令格式:command [-options] [parameter1] ... command ...

  2. Win10搭建VM12.0.1虚拟机,虚拟机网络同宿主机ping不通的解决办法

    准备系统学习Linux系统,在电脑搭建了一个CentOS虚拟机,希望能从宿主机连接至虚拟机. 尝试了很多办法,碰到各种坑,最后这个方法成功了! 分享给大家,希望有所帮助. 一.环境 1.宿主机:Win ...

  3. 第四模块 :微服务调用链监控CAT架构和实践

    采样率:每一个请求为都进行记录,或者100次请求为记录50次 各个开源框架都满足opentracing的标准,只要使用opentracing标准埋点的客户端,可以使用不同的客户端去展示,opentra ...

  4. Java 多线程基础(十二)生产者与消费者

    Java 多线程基础(十二)生产者与消费者 一.生产者与消费者模型 生产者与消费者问题是个非常典型的多线程问题,涉及到的对象包括“生产者”.“消费者”.“仓库”和“产品”.他们之间的关系如下: ①.生 ...

  5. 关于idea的一些快捷键

    最近在用idea写代码,熟悉一些快捷键的使用能够让写代码的速度提高,以下快捷键是默认idea的快捷键,当然我们可以自己修改的: 自动补全代码快捷键:CTRL+alt+V 自动格式化代码:CTRL+al ...

  6. Flask04-SQL

    from flask import render_template, flash, redirect from app import app from app import db, models fr ...

  7. vue基础入门(3)

    3.组件基础 3.1.什么是组件? 3.1.1.理解组件 前端组件化开发是目前非常流行的方式,什么是前端组件化开发呢?就是将页面的某一部分独立出来,将这一部分的数据.视图.以及一些控制逻辑封装到一个组 ...

  8. Buy A Ticket(图论)

    Buy A Ticket 题目大意 每个点有一个点权,每个边有一个边权,求对于每个点u的\(min(2*d(u,v)+val[v])\)(v可以等于u) solution 想到了之前的虚点,方便统计终 ...

  9. 关于Dfs(1);

    问: 我们大部分在根不定的情况下喜欢Dfs(1):到底要不要这样呢? 解释: 首先Dfs(1):是没有任何问题的,毕竟根不定,随便选一个肯定有1,这是没问题的,但是,很多数据也是这么造的,比如在1处卡 ...

  10. jmeter察看结果树-响应数据乱码

    打开jmeter下的目录:\bin\jmeter.properties文件,搜索“encoding”关键字,找到如下配置: # The encoding to be used if none is p ...