CodeForces.1806A .平面移动.[判断可达范围][找步数规律]

news2025/1/12 3:59:26

题目描述:


题目解读:

给定移动规则以及起始点,终点;分析终点是否可达,可达则输出最小步数。


解题思路:

首先要判定是否可达。画图可知,对于题目给定的移动规则,只能到达起始点(a,b)的第一象限和第二象限的上半部分。

因此对于输入的终点(c,d),构建判断语句:如果(c,d)在(a,b)的三四象限,即 d>b,不可达。如果(c,d)在(a,b)的第二象限下半部分,即 c>a && d>=b && c-a>d-b 时,也不可达。

其余可达的点计算最小路径。题目给定的移动方式是向左平移或者向右对角线移动。

我的思路是先走右对角到达终点同一高度(如果终点和起点y坐标相同则省略该步),然后左移即可。(这个思路是经过计算的,即使终点在起点的第一象限,先到右对角线再左移 和 先向左移然后通过·右对角线不断靠近,所需步数是一样的。)

从(a,b)到(c,d),先走右对角线,到达(a+d-b,d),然后向左移动到(c,d)即可。

到达(a+d-b,d)需要d-b步,移动到(c,d)需a+d-b-c步,共需要d-b+a+d-b-c


代码实现:

//判断能否按题目要求进行移动,能的话给出最小步数
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

void Solve() {
	int a,b,c,d;
	scanf("%d%d%d%d", &a,&b,&c,&d);
	if (b>d || (c>a && d>=b && c-a>d-b)){
		printf("%d\n",-1);
	}
	else printf("%d\n", (d-b)+ (a+d-b)-c );
	return;
}

int main() {
	int t;
	scanf("%d", &t);
	while (t--) Solve();
	return 0;
}

遇到的错误:求解移动步数的时候容易卡壳。

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

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

相关文章

行业常识_交换机

文章目录 一、前言二、交换机2.1 什么是交换机&#xff1f;2.2 交换机的作用是什么&#xff1f;2.3 交换机的应用2.4 交换机分类2.5 交换机功能2.6 交换机的带宽 三、总结 一、前言 项目中经常会用到交换机。 交换机有多个网口。 你可以用一根网线&#xff0c;网线一端插入交换…

【学习日记2023.5.23】 之 店铺营业状态模块完善

文章目录 5. 店铺营业状态设置5.1 需求分析和设计产品原型 5.2 代码开发5.2.1 设置营业状态5.2.2 管理端查询营业状态5.2.3 用户端查询营业状态 5.3 功能测试5.3.1 接口文档测试5.3.2 接口分组展示5.3.3 前后端联调测试5.4 代码提交 5. 店铺营业状态设置 5.1 需求分析和设计 产…

chatgpt赋能Python-python_os_remove

Python os.remove(): 删除文件 什么是 Python os.remove()&#xff1f; Python os.remove() 函数是 Python 中用于删除文件的标准库函数之一。 它使用以下语法&#xff1a; os.remove(file)这里的 file 参数是要删除的文件的路径及文件名。 Python os.remove()的工作原理 …

Linux——SNAT与DNAT的应用

一、SNAT的介绍 1&#xff0c;SNAT概述 SNAT&#xff08;SNAT&#xff09;一般指源地址转换 源地址转换是内网地址向外访问时&#xff0c;发起访问的内网ip地址转换为指定的ip地址&#xff08;可指定具体的服务以及相应的端口或端口范围&#xff09;&#xff0c;这可以使内网中…

2024考研《数据结构》复习笔记总览(文末有彩蛋)

前言 数据结构是是计算机专业的必修课&#xff0c;也是计算机考研的必学书目。 随着科技的飞速发展&#xff0c;数据结构的基础性地位不仅没有动摇&#xff0c;反而由于近年来算法工程师的高薪火爆&#xff0c;使得数据结构的重视程序空前高涨。 索引目录 数据结构考研笔记第…

电动力学专题:天线阵简介

电动力学专题&#xff1a;天线阵天线阵是指由多个天线按一定方式组合而成的一个系统&#xff0c;用于接收或发射无线电信号。天线阵可用于雷达、通信、导航和定位等领域&#xff0c;能够大幅度提高系统的灵敏度和方向性&#xff0c;同时也能提高系统的抗干扰能力和分辨率。在实…

fastposter v2.15.0 从繁琐到简单,简洁好用的海报生成器

fastposter v2.15.0 从繁琐到简单&#xff0c;简洁好用的海报生成器 从繁琐到简单&#xff0c;简洁好用的海报生成器 我很高兴向大家推荐一款令人兴奋的工具——Fastposter海报生成器。作为一名开发者&#xff0c;我们深知在项目中创建专业级海报的重要性&#xff0c;但常常面…

MATLAB仿真建模:Simulink和Stateflow的应用和模型设计

第一章&#xff1a;引言 在当今的科学研究和工程领域中&#xff0c;仿真建模是一项非常重要的技术。通过仿真建模&#xff0c;我们可以在计算机上创建模拟真实系统行为的模型&#xff0c;并通过模型的分析和测试来优化系统设计。MATLAB是一种广泛应用于科学和工程领域的强大工…

FPGA——HLS入门-LED闪烁仿真

系列文章目录 文章目录 系列文章目录一、HLS介绍1、什么是HLS2、与VHDL/Verilog有什么关系?3、关键技术局限性 二、Vivado HLS - LED闪烁仿真1、项目配置2、C仿真3、联合仿真 三、总结 一、HLS介绍 1、什么是HLS HLS就是高综合&#xff08;High level Synthesis&#xff09;…

如何开发微信小程序,后端,前端,小程序端,如何部署到腾讯云托管

开发微信小程序是一项非常有趣的任务&#xff0c;它涉及到前端、后端和小程序端的开发。在本文中&#xff0c;我们将介绍如何开发微信小程序&#xff0c;并将其部署到腾讯云托管。 一、前端开发 前端开发是微信小程序开发的第一步。在这一步中&#xff0c;我们需要使用微信小程…

分享几个网内可用的免费的ChatGPT网页版

Chatgpt: 与AI聊天的新体验 随着数字生活的普及和人工智能技术的快速发展&#xff0c;越来越多人希望与机器进行真挚的交流&#xff0c;体验身临其境的感觉。基于这个想法&#xff0c;我们推出了Chatgpt&#xff0c;一款基于自然语言处理技术和深度学习算法的智能聊天机器人&a…

Spark基础学习笔记----RDD检查点与共享变量

零、本讲学习目标 了解RDD容错机制理解RDD检查点机制的特点与用处理解共享变量的类别、特点与使用 一、RDD容错机制 当Spark集群中的某一个节点由于宕机导致数据丢失&#xff0c;则可以通过Spark中的RDD进行容错恢复已经丢失的数据。RDD提供了两种故障恢复的方式&#xff0c…

Linux防火墙之firewalld基础

一、firewalld概述 firewalld防火墙是Centos7系统默认的防火墙管理工具&#xff0c;取代了之前的iptables防火墙&#xff0c;也是工作在网络层&#xff0c;属于包过滤防火墙。 firewalld和iptables都是用来管理防火墙的工具&#xff08;属于用户态&#xff09;来定义防火墙的…

数据结构 之 二叉搜索树 结构

二叉树搜索树的基本属性&#xff1a; 如图所示&#xff1a;二叉搜索树有四个最基本的属性&#xff1a;指向节点的根&#xff08;root&#xff09;&#xff0c;节点中的键&#xff08;key&#xff09;、左指针&#xff08;right&#xff09;、右指针&#xff08;right&#xff…

DELL PowerVault MD3600f存储维修 控制器更换 电池更换

MD3600f 系列存储阵列介绍 MD3600f 系列是采用 2U 机架固定的外部独立磁盘冗余阵列 (RAID) 存储阵列&#xff0c;可容纳多达 12 个 3.5 英寸或 24 个 2.5 英寸的 6.0-Gbps 串行连接SCSI (SAS) 磁盘。 MD3600f 系列存储阵列可以使用 MD1200 系列扩展机柜以菊花链式连接&#xff…

解决:在 Router 中父级未引入单文件组件而且 children 中的单文件组件不能在页面展示的问题

1、问题展示&#xff1a; 其一、问题描述&#xff1a; 在 router 中父级未引入单文件组件&#xff0c;而只是写了其它配置&#xff0c;但在其 children 中写了配置且引入了单文件组件而未能在页面中展示&#xff1b; 其二、代码&#xff1a; // 某一块的静态路由管理 {path…

2021下半年

2021下半年 a d a c b 阶码是纯整数&#xff0c;尾数是纯小数 对于阶码&#xff1a; 对于尾数&#xff1a; 选b c c a c b c b 归属于受委托方 a b c a 前向传播 反向传播&#xff0c;求关键路径 b b 关键路径上的活动松弛时间为0 c 中缀式&#xff1a;需…

chatgpt赋能Python-python_namedtuple

Python中的namedtuple 在Python中&#xff0c;namedtuple是一个方便且易于使用的数据结构&#xff0c;可以有效地处理元组数据。 它是Python标准库collections中一个实用的类&#xff0c;可以创建一个具有命名属性的元组&#xff0c;类似于一个简单的类对象。namedtuple的属性…

Linux防火墙iptables(下)

一、通用匹配 1&#xff0c;协议匹配 2&#xff0c;地址匹配 3&#xff0c;接口匹配 二、隐含匹配 1.端口匹配 2&#xff0c;TCP标志位匹配 3&#xff0c;ICMP类型匹配 ICMP类型可以是字符串、数字代码 ICMP类型含义Echo-Request &#xff08;代码为8&#xff09;表示请求…

设计模式之规约模式

设计模式之规约模式 引言规约模式案例改造 参考 引言 规约模式的英文是Specification Pattern&#xff0c;Specification直译过来是要求、技术说明、明确的意思。光看名字估计大家都是一脸懵逼&#xff0c;根本不知道这个设计模式大概会是一个什么样子。这也是设计模式的一个通…