奇怪的电梯(基本的搜索)

(c语言实现)算法笔记之bfs及pta习题 目录 一,bfs(广度优先搜索)的定义 二,bfs(广度优先搜索)的应用 三,题型训练 1,奇怪的电梯 2,寻宝 3,龙舌兰酒吧 四,总结 一,bfs(广度优先搜索)的定义 BFS 全称是Breadth First Search,中文名是宽度优先搜索,也叫广度优先搜索。 是图上最基础、最重要的搜索算法之一。 所谓宽度优先。就是每次都尝试访问同一层的节点。 如果同一层都访问完了,再访问下一层。 这样做的结果是,BFS 算法找到的路径是从起点开始的最短... 阅读详情
/*
奇怪的电梯(normal)

Time Limit:1000MS  Memory Limit:65536K
Total Submit:200 Accepted:63 

Description 

呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:3 3 1 2 5代表了Ki(K1=3,K2=3,……),从一楼开始。在一楼,按“上”可以到4楼,按“下”是不起作用的,因为没有-2楼。那么,从A楼到B楼至少要按几次按钮呢?

Input 

输入文件共有二行,第一行为三个用空格隔开的正整数,表示N,A,B(1≤N≤200, 1≤A,B≤N),第二行为N个用空格隔开的正整数,表示Ki。

Output 

输出文件仅一行,即最少按键次数,若无法到达,则输出-1。

Sample Input 


5 1 5
3 3 1 2 5


Sample Output 


3

*/
#include 
<stdio.h>
#define MAX 501

int a,b,n ;
int v[MAX],flag=0 ;

void trytofind(int x,int total)
{
     
if(x-v[x] == b || x+v[x] == b)
     {
       
      
if ( total < flag || flag == 0)
      flag 
= total ;
       
     }
     
else
     {
       
if(x+v[x] <= n)
       trytofind(x
+v[x],total+1);
       
if(x-v[x] >= 1)
       trytofind(x
-v[x],total+1);
     }
     
}
int main(void)
{
    
int i,j,k ;
    scanf(
"%d %d %d",&n,&a,&b);
    
for(i=1 ; i<= n; i++)
    scanf(
"%d",&v[i]);
    
    trytofind(a,
1) ;
    
    
if(flag)
    printf(
"%d ",flag);
    
else
    printf(
"-1 ");
    
    system(
"pause");
        
    
return 0 ;

} 
 
【阿里云大模型高级工程师ACP习题集】2.7 通过微调增强模型能力 (下篇)(⭐️⭐️⭐️ 重点章节!!!) 【摘要】这是我精心整理出对应的习题集,里面足足有 30 道题目,从基础概念到深度拓展,全方位覆盖章节重点、难点。不管你是想检验自己的学习成果,还是想针对薄弱环节进行强化训练,它都能完美适配! 阅读详情

相关推荐

C语言|深入浅出讲解int转换为float全过程(附2017年统考大题案例)

int转换为float类型为什么会发生精度损失? 精度损失的详细过程究竟是什么样的? 什么样情况float会发生精度损失?没有弄懂2017年浮点数统考大题? 这一篇用2017年统考大题案例帮你更深的理解浮点数的存储规则。

DADONGOOO的博客 1万+

1078. 奇怪的电梯

1078. 奇怪的电梯(Standard IO) 时间限制:1000 ms空间限制:262144 KB具体限制 题目描述 大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,...

weixin_30699741的博客 461

Java Web 图书管理系统的制作指南

实现对图书信息的增删改查(CRUD)操作。支持用户登录与权限管理。图书借阅与归还功能。系统管理员可以管理用户信息和图书库存。

Xiaoxin的博客 1629

OJ系统刷题 第二篇

OJ系统刷题 第二篇

我的博客 912

TCGA之GDC-client工具下载安装与使用

文章主要是对GDC-client工具下载TCGA数据库数据整个过程的一个记录 1.下载GDC-client工具 GDC-client工具网址:GDC Data Transfer Tool | NCI Genomic Data Commons (cancer.gov) 我这里下的是上图中红圈中的版本, 2.解压安装 从网上了解的是不能解压到带中文的路径里,解压后是一个.exe文件,为了能直接在cmd命令行下使用,将其加入系统环境: 点击新建之后,输入将文件解压到的路径,然后...

better_strong的博客 1万+

openlayers6【十九】vue HeatmapLayer热力图层实现热力图效果详解

文章目录1. 写在前面2. Heatmap 类实现热力图2.1 Heatmap 参数2.2 实现热力图3. 完整代码4. 添加删除map图层的方法5. 热力图自身的get,set方法 1. 写在前面 我们主要看热力图的效果,区域绘制效怎么设置详细内容可以访问 openlayers6【十七】vue VectorLayer矢量图层画地图省市区,多省市区(粤港澳大湾区)效果详解 在 openlayers 中,图层是使用 layer 对象表示的,主要有 WebGLPoints Layer、热度图(HeatMap L

@必意玲 1万+

CCF NOI1078. 奇怪的电梯【递归】【广度优先搜索】

时间限制: 1000 ms  空间限制: 262144 KB  具体限制   题目描述 大楼的每一层楼都可以停电梯,而且第i层楼(1&lt;=i&lt;=N)上有一个数字Ki(0&lt;=Ki&lt;=N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:3 3 1 2 5代表了Ki(K1=3,K2=3,……),从一楼开始...

fyy_lufan的博客 956

Arnold Denoise流程

参考:https://support.solidangle.com/display/ARP/Removing+Noise+Workflow Arnold生来不是一个以单帧渲染速度见长的渲染器,但这并不能作为一个简单场景渲染时间长达几个小时的借口。 个人认为高品质生产级渲染结果中,Unbiased renderer在渲染时最耗计算时间的其实就是降噪,以至于降噪专门成了一门灯光师必备的技术

机器猫的CG空间 5084

电梯 python 题解

一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第 i层楼(1≤i≤N)上有一个数字 Ki(0≤Ki≤N)。电梯只有两个按钮:上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。 例如:3,3,1,2,5 代表了 Ki(K1=3,K2=3,……),从 1 楼开始。在 1 楼,按“上”可以到 4 楼,按“下”是不起作用的,因为没有 −2 楼。那么,从 A 楼到 B 楼至少要按几次按钮呢? 输入格式:共二行。第一行为三个用...

weixin_53744560的博客 1774

RK3568平台开发系列讲解(安卓篇)LED呼吸灯系统流程

1.app层封装后使用NotificationManager发出:NotificationManager.notify() 2.Android 系统架构中:一个manager类对应一个aidl接口,一个manager对应一个底层的服务,notification也是这个架构

内核笔记 3646

HTML粉色爱心(完整代码)

HTML语言实现粉色爱心的完整代码。

AIGC 1105

奇怪的电梯

 题目描述: 某栋大楼有一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第i层楼(1&lt;=i&lt;=N)上有一个数字Ki(0&lt;=Ki&lt;=N)。电梯只有四个按钮:开、关、上、下。上、下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:3 3 1 2 5代表了Ki(K1=3K2=3...),从一层开始。在一层按“上”可以到4层,按“下”是不起作用的...

ljqmiao_的博客 807

高效批量转换Java接口为MCP服务:降低重复劳动的实战指南

高效批量转换Java接口为MCP服务:降低重复劳动的实战指南

专注于编程、AI、人工智能等多个领域内容研究和分析 722

七 BFS广度优先搜索(例题持续更新)

BFS广度优先搜索 BFS简要介绍 广度优先搜索算法的基本思想: 对于初始状态入队,设置初始状态为已访问 如果队列不为空时,出队队头元素,否则跳到第5步 检查出队的元素是否为最终解,如果是则跳到第5步。 对于出队的元素,检查所有相邻状态,如果有效并且未访问,则将所有有效的相邻状态进行入队,并且设置这些状态为已访问,然后跳到第2步重复执行 检查最后出队的元素是否为最终解,如果是输出结果,否则说明无...

编程笔记 388

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

P1135 奇怪的电梯

本文介绍了C++中队列的基本操作及其在BFS算法中的应用。主要内容包括:1.队列的声明方式(普通数据类型、结构体或pair);2.队列常用操作(push、pop、empty、size、front等);3.通过一个电梯问题示例展示了BFS算法的实现,其中使用队列进行层序遍历,记录到达目标楼层的最短步数。代码演示了如何利用队列处理上升和下降两种移动方式,并统计步数。该示例可作为BFS算法的典型应用场景参考。

Latent_darkness的博客 165

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【算法每日一练]-bfs 篇5 奇怪的电梯 ,马的遍历 ,流星坠落

看一下今天的内容。

m0_69478376的博客 465

广度优先搜索(BFS)

ee

m0_62947847的博客 441

广度优先搜索算法2(基础算法)

本文介绍了普通广度优先搜索(BFS)的基本框架和应用。首先对比了棋盘BFS与普通BFS的区别,给出了标准BFS的代码框架。随后通过三个经典例题进行实战演练:"奇怪的电梯"问题展示了基础BFS应用;"抓住那头牛"问题演示了多种移动方式的处理;"青蛙跳木桩"问题则体现了BFS求最短路径的特性。每个例题都包含详细的分析和完整的代码实现。最后提供了两道练习题(最小移动步数和质数转换),帮助读者巩固所学内容。文章采用轻松幽默的语言风格讲解算法知识,适合初学者

breeze_phantom 1119

深度优先搜索算法(dfs)(第一周算法训练)

深度优先搜索定义是一种用于遍历或搜索树或图的算法。这种算法会尽可能深地搜索图的分支,直到找到目标节点或达到叶节点(没有子节点的节点),然后回溯到上一个分支继续搜索。

q20202828的博客 500

解题利器 之 BFS 附例题详解(STL大法的应用)

解题利器 之 BFS 附例题详解(STL大法的应用)BFS(Breadth First Search)广度优先搜索是一种优先访问离当前节点最近的所有节点,然后再向外扩展遍历从而找到最优(最少)的结果的算法。通常用队列实现。

2403_86230295的博客 1200

搜索

搜索是个神奇的东西,分dfs及bfs等(鉴于我后面有个人说不只两种,因此加个“等”),即深度优先搜索和广度优先搜索等,一般来说,深搜要用到递归,而广搜用队列维护,并且一般的一般来说,广搜会比深搜优秀。搜索一般都比较盲目,所以会做很多的无用功,因此数据一般较小,就是这样,概念说不清,看例题吧。 T1 奇怪的电梯 有一种奇怪的电梯,每一层都可以停电梯,但是第i层只能向上或向下走k_i层楼,问从a...

smileyx2005的博客 248

深度优先搜索DFS和广度优先搜索BFS简单解析

转自:https://www.cnblogs.com/FZfangzheng/p/8529132.html 深度优先搜索DFS和广度优先搜索BFS简单解析 与树的遍历类似,图的遍历要求从某一点出发,每个点仅被访问一次,这个过程就是图的遍历。图的遍历常用的有深度优先搜索和广度优先搜索,这两者对于有向图和无向图均适用。 一.深度优先搜索 1.理解分析 首先,让我们来看一看更些简单的深度...

weixin_30872733的博客 104

简单的搜索入门题目及解答(后面等我缓缓想想在说一些细节)

https://www.luogu.com.cn/problem/P1219八皇后问题https://www.luogu.com.cn/problem/P1135奇怪的电梯https://ac.nowcoder.com/acm/problem/16706选数https://www.luogu.com.cn/record/256382796马的遍历

2501_94349658的博客 201

BFS 搜索 写代码思路(顺序)

#include #include using namespace std; queue qu; void bfs() { while(!qu.empty())//只要队列不为空就往下搜索 { int s = qu.front(); //取出队列最前面的元素 if(满足终止条件)break;//找到终点,跳出队列 qu.pop(

大脑袋剑客 3492

算法入门经典第二版 抽象dfs

1.算法竞赛入门经典刘汝佳; 2.dfs 3.深度优先搜索 4.全排列问题

m0_51373056的博客 210

广度优先搜索(Breadth-first search)

广度优先搜索(Breadth-first search) 广度优先搜索简称广搜或者BFS,BFS和DFS一样是一种图算法,dijkstra算法和最小生成树prim算法也有用到BFS的思想。通俗一点讲BFS就是暴力的辐射状一样搜索每一种可能出现的情况来找到答案。 下面来我们还是先看个图 让我们从1开始,同时我们用队列来模拟(因为大部分BFS程序都是拿队列来实现的), 选到1我们就把1从队列中拿出去...

weixin_43859149的博客 2318

WEEK_6(BFS&队列queue)

经过疯狂debug,终于发现,原来第一次找到的点的金钱数不一定是最少的情况,再往前回溯,终于发现,由于从一个点到另一个点的路径不止一条,于是在重复经过一个点的时候,金钱数会有大小之分,那么此时一定取较小值,(在这里,我直接用vis来存金钱数,当然也可另设一个数组)并对新来的点判断是否是较小,如果大,就不入队,小就可以入队,当然了,这个条件也要加入其他情况中,最终能得到不止一种结果,取最小值就行。宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。

hycccccch的博客 147
上一篇: N皇后问题(基本的搜索法)
下一篇: 连续自然数之和问题(多种解法)
oopos
博客等级 码龄19年 21粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值