奇怪的电梯

奇怪的电梯奇怪的电梯【问题描述】某栋大楼有一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第i层楼(1≤i<N)上有一个数字K(≤K≤N)电梯只有四个按钮:开、关、上、下。上、下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:33125代表了Ki(K1=3,K2=3,…),从一层开始。在一层按“上”可以到4层,按“下”是不起作用的,因为没有-2层。那么从A层到B层至少要按几次按钮呢?【输入格式】第1行为3个用1个空格隔开的正整数,表示N、A、B(l≤N≤200,1≤

大家好,又见面了,我是你们的朋友全栈君。

奇怪的电梯

【问题描述】

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

【输入格式】

第1行为3个用1个空格隔开的正整数,表示N、A、B(l≤N≤200,1≤A,B≤N)。

第2行为N个用1个空格隔开的正整数,表示K。

【输出格式】

一行一个数,表示最少按键次数。若无法到达,则输出“-1”。

【输入样例】

5 1 5
3 3 1 2 5

【输出样例】

3

思路
学校网站的一道题
鸽了几天过端午去了
今天水一道最简单的标记

代码

#include<bits/stdc++.h>//实用头文件 
using namespace std;
int n,m,k,s=(1<<30);
int a[201];
bool b[201];
inline void dfs(int now,int sum)
{ 
   
	if(now==k)
	{ 
   
		s=min(s,sum);
	}
	else if(sum<=s)
	{ 
   
		b[now]=1;//标记当前楼层 
		if(now+a[now]<=n && b[now+a[now]]==0)//上,要是没去过 
		{ 
   
			dfs(now+a[now],sum+1);
		}
		if(now-a[now]>=1 && b[now-a[now]]==0)//下,也是没去过 
		{ 
   
			dfs(now-a[now],sum+1);
		}
		b[now]=0;//取消标记 
	}
}
int main()
{ 
   
	ios::sync_with_stdio(false);
	cin.tie(0);
	int i,j;
	cin>>n>>m>>k;
	for(i=1;i<=n;i++)
	{ 
   
		cin>>a[i];
	}
	b[m]=1;//第m层需要标记 
	dfs(m,0);
	if(s==(1<<30))
	{ 
   
		cout<<-1<<endl;
	}
	else
	{ 
   
		cout<<s<<endl;
	}
	return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130357.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java 常用限流算法解析

    Java 常用限流算法解析前言限流作为高并发场景下抵挡流量洪峰 保护后端服务不被冲垮的一种有效手段 比如大家熟知的限流组件 guawa springcloud 中的 Hystrix 以及 springcloud alibaba 生态中的 Sentinel 甚至是基于网关的限流 比如在 nginx 中配置限流策略 在 gateway 中配置限流策略等限流无处不在 既然限流的作用如此强大 那么其底层的实现原理如何呢 说到底 限流的核心是由一系列不同的算法完成 本篇将通过实例来说明下常用的几种限流算法的用法和原理 1 计数器算法计数器算法限流是采用简单

    2025年6月3日
    1
  • Java程序设计(高级及专题)- 泛型/容器(集合框架)

    Java程序设计(高级及专题)- 泛型/容器(集合框架)Java程序设计(高级及专题)- 泛型/容器(集合框架)

    2022年4月22日
    35
  • intellij idea 控制台中文乱码_idea server控制台乱码

    intellij idea 控制台中文乱码_idea server控制台乱码本人下载了一开源工程,该工程采用的是maven进行编译,在导入到itellijidea后,按如下图配置好maven编译环境但是采用配置好的maven进行编译时,在run的控制台输出窗口中出现乱码,导致无法编译,由于工程是utf-8编码,所以按如下方式配置了工程的编码网上run控制台输出乱码的解决思路如下:1)参照上面配置工程编码的方式将GlobalEncoding/Proj…

    2022年8月29日
    3
  • No Suitable Driver Found For Jdbc解决方法

    No Suitable Driver Found For Jdbc解决方法在学习java数据库连接池使用的时候遇到问题,无法连接到数据库,之前练习别的时候都没事,莫名的到这里有连接不上了,查看日志是”NoSuitableDriverFoundForJdbc”,但查看数据库连接配置没问题啊,后来发现原来是少导入了一个包mysql-connector-java-3.1.14-bin.jar,导入该包,问题解决.总结一下NoSuitableDriver…

    2022年6月23日
    38
  • javaSocket传输模式

    javaSocket传输模式Sockets有两种主要的操作方式:面向连接的和无连接的.面向连接的sockets操作就像一部电话,他们必须建立一个连接和一人呼叫.所有的事情在到达时的顺序与它们出发时的顺序时一样.无连接的sockets操作就像是一个邮件投递,,没有什么保证,多个邮件可能在到达时的顺序与出发时的顺序不一样.到底用哪种模式是邮应用程序的需要决定的.如果可靠性更重要的话,用面向连接的操作会好一些.比如文件服务器需要他们

    2022年6月24日
    22
  • PyCharm配置_pycharm安装配置

    PyCharm配置_pycharm安装配置pycharmpycharm是一个比较好的pythonIDE,可以在MACOS和windows上使用,补全功能强大,而且界面十分友好,特别适合python编程人员使用。pycharmPycharm安装Pycharm配置修改成灰底主题显示行号修改字体大小编程字体我推荐运行调试Pycharm安装pycharm的安装地址:http://www.jetbrains.com/

    2022年8月26日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号