【洛谷】P1135奇怪的电梯(DFS)

news2024/10/7 20:31:45

这题利用 dfs 解决,编程实现比较简单。

具体来说,每层楼有两种可能,上楼或下楼,因此可以形成一个以 a 楼为根的二叉树,因此只需一个 for 循环遍历某个父节点的两个子节点,之后递归就行。

易错点:这题的判断条件不再是 N-皇后那样判断是否访问过某层楼,而是判断当前走到某层楼的步数,是否小于原先走到该层楼所需步数(因为有多种方式可以走到某层楼,我们要找出其中所需步数最小的那种),如果小于就替换掉原先走到该层所需的步数。

 

 

#include<iostream>
#include<string.h>
using namespace std;

const int N = 210;

int n, a, b, k[N], ans[N];

void dfs(int u)
{	
	for(int i=-1; i<=1; i+=2)
	{
		int next = u + i*k[u]; // 下一步去到的楼层 
		if(ans[next] > ans[u] + 1 && next >= 1 && next <= n)
		{
			ans[next] = ans[u] + 1;
			dfs(next);
		}
	}
}

int main()
{
	scanf("%d%d%d", &n, &a, &b);
	for(int i=1;i<=n;++i) scanf("%d", &k[i]);
	
	if(a != b)	
	{
		memset(ans, 0x3f, sizeof(ans));
		ans[a] = 0;
		dfs(a);
		if(ans[b] != 0x3f3f3f3f)
		printf("%d", ans[b]);
		else
		printf("%d", -1);
	}
	else
		printf("%d", 0);
	
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1411652.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

马尔可夫预测(Python)

马尔科夫链&#xff08;Markov Chains&#xff09; 从一个例子入手&#xff1a;假设某餐厅有A&#xff0c;B&#xff0c;C三种套餐供应&#xff0c;每天只会是这三种中的一种&#xff0c;而具体是哪一种&#xff0c;仅取决于昨天供应的哪一种&#xff0c;换言之&#…

灰度转换及修改尺寸

文章目录 主要内容一.OpenCVPycharm1.读取图片及灰度转换代码如下&#xff08;示例&#xff09;: 2.修改尺寸代码如下&#xff08;示例&#xff09;: 总结 主要内容 读取图片及灰度转换修改尺寸 一.OpenCVPycharm 1.读取图片及灰度转换 代码如下&#xff08;示例&#xff09…

C++ 程序使用 OpenCV 生成两个黑色的灰度图像,并添加随机特征点,然后将这两个图像合并为一张图像并显示

文章目录 源码文件功能解读编译文件 源码文件 #include <iostream> #include <vector> #include <opencv2/opencv.hpp>std::vector<cv::KeyPoint> generateRandomKeyPoints(const cv::Mat& image, int numPoints) {std::vector<cv::KeyPoint&g…

Flume1.9基础学习

文章目录 一、Flume 入门概述1、概述2、Flume 基础架构2.1 Agent2.2 Source2.3 Sink2.4 Channel2.5 Event 3、Flume 安装部署3.1 安装地址3.2 安装部署 二、Flume 入门案例1、监控端口数据官方案例1.1 概述1.2 实现步骤 2、实时监控单个追加文件2.1 概述2.2 实现步骤 3、实时监…

体感大屏互动游戏开发

体感大屏互动游戏是一种结合了体感技术和大屏幕显示的游戏形式&#xff0c;旨在通过玩家的身体动作和互动&#xff0c;提供更加身临其境的游戏体验。这种类型的游戏常常采用各种体感设备&#xff0c;如深度摄像头、体感控制器、传感器等&#xff0c;使玩家能够通过真实的动作来…

C++算法学习心得六.回溯算法(3)

1.子集II&#xff08;90题&#xff09; 题目描述&#xff1a; 给定一个可能包含重复元素的整数数组 nums&#xff0c;返回该数组所有可能的子集&#xff08;幂集&#xff09;。 说明&#xff1a;解集不能包含重复的子集。 示例: 输入: [1,2,2]输出: [ [2], [1], [1,2,2], …

centos 安装mysql5.7教程

一&#xff0c;配置yum mysql5.7安装源 配置yum mysql5.7安装源 yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 配置mysql5.7安装源成功 查看配置成功的安装源 yum repolist enabled | grep "mysql*" 执行后看到已配…

大模型|基础——长短时记忆网络

文章目录 LSTM遗忘门输入门整合信息特点实现神经单元的内部计算门控控制——可以动态选择信息在大数据量的情况下&#xff0c;可有效缓解梯度 LSTM 遗忘门 遗忘门&#xff0c;是否进行遗忘。 如果通过计算&#xff0c;计算出来的结果为0&#xff0c;就选择遗弃。 如果遗忘&…

14.4.2 Flash读取与修改数据库中的数据

14.4.2 Flash读取与修改数据库中的数据 计数器是网站必不可少的统计工具&#xff0c;使用计数器可以使网站管理者对网站的访问情况有一个清晰的了解。如果仅仅是统计首页访问量的话&#xff0c;用文本文件来存储数据就可以了&#xff0c;但如果统计的数据量比较大的话(如文章系…

MySQL和Redis的事务有什么异同?

MySQL和Redis是两种不同类型的数据库管理系统&#xff0c;它们在事务处理方面有一些重要的异同点。 MySQL事务&#xff1a; ACID属性&#xff1a; MySQL是一个关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;支持ACID属性&#xff0c;即原子性&#xff08;Ato…

【CANoe使用大全】——Graphics窗口

文章目录 1.Graphics作用2.Graphics窗口打开方式2.1.Analysis—>Graphics2.2.Measurement Setup ------> Graphics 3.变量添加4.Graphics窗口菜单栏介绍4.1. 单个测量光标4.2. 差分测量光标4.3.Y轴的显示方式4.3.1.Show Y-Axis of Selected Signal4.3.2.Show All Y-Axis4…

【java题解】题目 1779: 你的第一个程序;题目 1779: 你的第一个程序;题目 1173: 计算球体积

目录 题目 1779: 你的第一个程序 题目描述 输入格式 输出格式 样例输入 样例输出 题解 题目 1173: 计算球体积 题目描述 输入格式 输出格式 样例输入 样例输出 题解 题目 1267: AB Problem 题目描述 输入格式 输出格式 样例输入 样例输出 题解 从今天开始…

前端面试题-深拷贝浅拷贝-浏览器存储-原型链-闭包-call,bind,apply的区别

前端面试题-深拷贝浅拷贝-浏览器存储-原型链-闭包-call,bind,apply的区别 什么是深拷贝什么是浅拷贝cookie,sessionStorage和localStrorage的区别是什么什么是原型链prototype原型 作用域什么是闭包&#xff0c;闭包的作用场景是什么call bind和apply的区别 什么是深拷贝什么是…

Android颜色选择器

Android颜色选择器&#xff0c;弹框提示选择颜色。效果如图。点击或者滑动圆环和底部横向渐变色调整颜色&#xff0c;中间圆圈的颜色就是最终选中的颜色。点击圆圈确认颜色。 使用 //颜色选择Dialogprivate void showColorPickDialog(int position, int colorInt){ColorPickerD…

Tomcat session复制及session共享技术

目录 1、环境 2、配置测试页面 3、配置session共享 前言&#xff1a; 为什么要做session复制或共享 实现Session复制或Session共享的目的是为了在多个Tomcat实例之间实现Session的无缝转移和共享&#xff0c;以提供更高的可伸缩性、负载均衡和容错性。以下是一些原因&#x…

浅谈DNS的工作原理及其作用

DNS&#xff0c;全称为Domain Name System&#xff0c;即域名系统&#xff0c;是一种用于将域名和IP地址相互映射的分布式数据库系统。它将可读的域名转换为对应的IP地址&#xff0c;使得用户可以更方便地通过域名来访问网络上的资源。今天锐成就简单探讨一下DNS的工作原理及其…

Redis 面试题 | 11.精选Redis高频面试题

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Java服务端使用freemarker+wkhtmltoimage生成Echart图片

目录 1.通过 freemarker 将ftl转成html 1.1 freemarker 手册: 1.2 添加freemarker maven依赖 1.3 添加 echart-test.ftl 模版文件 1.4 添加 FreemarkerTool 工具类 1.5 添加测试main方法 1.6 运行,生成echart-test-时间戳.html 文件 2. 通过wkhtmltoimage将html 转为p…

Flink max maxby区别

max只会显示指定字段的大小变化&#xff0c;而maxBy会显示其他字段的变化。 max&#xff1a;取指定字段的当前的最大值&#xff0c;如果有多个字段&#xff0c;其他非比较字段&#xff0c;以第一条为准。 maxBy&#xff1a;取指定字段的当前的最大值&#xff0c;如果有多个字段…

企业出海数据合规:GDPR下数据出境的条件

一、GDPR对数据出镜的规制 GDPR第五章集中规定了数据跨境流动的形式&#xff0c;总的来说给出了三种个人数据出境的条件&#xff0c;分别是基于充分决定的数据传输&#xff1b;基于采取适当保障措施的数据传输&#xff1b;以及基于特殊情况的减损条款&#xff0c;分别对应的是…