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

news2025/1/9 2:06:57

题目描述:


题目解读:

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


解题思路:

首先要判定是否可达。画图可知,对于题目给定的移动规则,只能到达起始点(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/563231.html

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

相关文章

Go 开发实践:手把手教你搭建一个登录功能

本文首发自「慕课网」 &#xff0c;想了解更多IT干货内容&#xff0c;程序员圈内热闻&#xff0c;欢迎关注"慕课网"及“慕课网公众号”&#xff01; 作者&#xff1a;Codey|慕课网讲师 用 Go 语言搭建简易登录功能 如果你最近刚学习Go 语言基础特性&#xff0c;对 …

《深入理解BigDecimal:揭秘钱财计算的核心技术》

文章目录 《深入理解BigDecimal:揭秘钱财计算的核心技术》***\*一、BigDecimal概述\*******\*二、BigDecimal常用构造函数\****2.1、常用构造函数2.2、使用问题分析***\*三、BigDecimal常用方法详解\****3.1、常用方法3.2、BigDecimal大小比较***\*四、BigDecimal格式化\*****…

【正点原子STM32连载】 第二十章 基本定时器实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第二十…

字符串匹配算法--KMP算法--BM算法

该算法解决的是字符串匹配问题&#xff0c;即查看字符串中是否含有完整的匹配字符串。如在java的string的contains方法匹配问题最简单的就是暴力破解了。在java的contains也是这么实现的&#xff0c;效率是低一点的。如果想要更快的速度可以自己写KMP算法。 代码实现体验 还未…

chatgpt赋能Python-python_numpy怎么用

Python与Numpy&#xff1a;简介 Python是一种高级编程语言&#xff0c;它具有简洁的语法和广泛的应用领域。Numpy是一个为Python提供高效数学库的开源库&#xff0c;它允许进行高速数值计算和数据处理。 对于那些正在开始使用Python和Numpy的初学者&#xff0c;这篇文章将向您…

CANoe使用教程

目录 1.CAN IG使用 2.Visual Sequence 自动发送报文序列&#xff0c;可以设置多个visual sequence&#xff0c;可用于重复的网络模拟和write窗口输出&#xff0c;比IG灵活&#xff0c;比CAPL简单 3.CANoe中的系统变量和环境变量都是一种用于存储和传递数据的变量&#xff0c;…

linux部署yolov5

Linux配置 LibTorch 和 OpenCV LibTorch 下载地址&#xff1a;https://pytorch.org/get-started/locally/ 直接解压即可 OpenCV 下载地址&#xff1a;https://opencv.org/releases/ 需要配置ffmpeg环境 export LD_LIBRARY_PATH$LD_LIBRARY_PATH:/home/workspace/dengzr/li…

嵌入式Linux应用开发笔记:GPIO编程

文章目录 目的基础说明代码示例数字输出数字输入外部中断 总结 目的 GPIO嵌入式设备中最基础的外设&#xff0c;使用上也是非常频繁的。这篇文章将记录下应用程序中GPIO操作相关内容。 这篇文章中内容均在下面的开发板上进行测试&#xff1a; 《新唐NUC980使用记录&#xff1…

15、STM32驱动sht35温湿度传感器

本文使用模拟IIC驱动sht35温湿度传感器 踩坑点&#xff1a;购买的模块IIC上拉电阻为10KΩ&#xff0c;会导致IIC不稳定&#xff0c;抗干扰差&#xff0c;容易导致时序错误&#xff1b;建议更换为4.7KΩ 一、CubeMx配置 其余默认&#xff0c;生成工程 1、us精确延时 Delay_Dr…

2023年电子、通信与控制工程国际会议(SECCE 2023)

会议简介 Brief Introduction 2023年电子、通信与控制工程国际会议(SECCE 2023) 会议时间&#xff1a;2023年8月11日-13日 召开地点&#xff1a;韩国济州岛 大会官网&#xff1a;www.isecce.org 2023年电子、通信与控制工程国际会议(SECCE 2023)将围绕“电子、通信与控制工程”…

Spring Boot 整合流程引擎 Flowable(附源码地址)

一、导入依赖 flowable依赖&#xff1a; <dependency><groupId>org.flowable</groupId><artifactId>flowable-spring-boot-starter</artifactId><version>6.7.2</version> </dependency>pom.xml: <?xml version"1…

驱动页面性能优化的3个有效策略

目录 引言 背景 前端性能优化 测试视角的解法 性能问题的发现 性能数据的采集 性能指标的确定 性能问题的分析 如何衡量性能问题严重性 分析性能瓶颈-分析思路 分析结论关键思路 引言 测试通过发现、分析、验证三板斧&#xff0c;驱动推进页面性能优化快速有效&…

关注 | 蛙色元宇宙,正式成为XRMA联盟成员单位

中国虚拟现实与元宇宙产业峰会&#xff0c;2023年3月22日于杭州圆满结束&#xff0c;在杭州市人民政府、浙江省经济和信息化厅指导&#xff0c;由杭州市经济和信息化局、杭州市西湖区人民政府主办&#xff0c;中国信息通信研究院承办。 蛙色元宇宙作为元宇宙的领先企业之一&…

【AI面试】CrossEntropy Loss 、Balanced Cross Entropy、 Dice Loss 和 Focal Loss 横评对比

样本不均衡问题一直是深度学习领域一个不可忽略的问题&#xff0c;常说的长尾效应&#xff0c;说的就是这个问题。一类占据了主导地位&#xff0c;导致其他类无论怎么优化&#xff0c;都不能好转。 无论是纯纯的分类任务&#xff0c;还是稍微复杂一些的目标检测任务和分割任务…

关于java在成员/全局变量上不同类型赋值遇到的问题(值传递)

一个疑惑 文件简介回答参考文献 文件简介 class ss{static class Student{int id;String name; /*public Student(int id, String name) {this.id id;this.name name;}*/public int getId() {return id;}public void setId(int id) {this.id id;}public String getName() {…

数字人入门文章速览

语音驱动三维人脸方法 OPPO 数字人语音驱动面部技术实践 【万字长文】虚拟人漫谈 Blendshape学习笔记 人脸重建速览&#xff0c;从3DMM到表情驱动动画 功能强大的python包&#xff08;四&#xff09;&#xff1a;OpenCV 从Blendshapes到Animoji 3D人脸重建算法汇总 一、3D人脸重…

windows 10 安装k8s环境 Kubernetes

主要命令有 1. iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex 2. choco install minikube 3. minikube start 4. minikube dashboard 使用管理员运行 PowerShell 执行下面这条命令 iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex choc…

开源赋能 普惠未来|铜锁/Tongsuo诚邀您参与2023开放原子全球开源峰会

铜锁/Tongsuo是一个提供现代密码学算法和安全通信协议的开源基础密码库&#xff0c;为存储、网络、密钥管理、隐私计算、区块链等诸多业务场景提供底层的密码学基础能力&#xff0c;实现数据在传输、使用、存储等过程中的私密性、完整性和可认证性&#xff0c;为数据生命周期中…

Linux:web基础与HTTP协议

Linux&#xff1a;web基础与HTTP协议 一、域名概述1.1 域名的概念1.2 域名空间结构1.3 域名注册 二、网页的概念2.1 网页2.2 网站2.3 主页2.4 网页2 三、HTML概述3.1 HTML概述3.2 HTML文档结构3.3 HTML 基本标签 四、web概述4.1 web概述4.2 Web1.0 vs Web2.04.3 静态网页4.3.1 …

【挑战自己】软件测试的7个级别,做到3级已经超越80%测试人

有人说&#xff1a;软件测试就是最low的点点点工作。 有人说&#xff1a;测试工作职位薪水到一定程度只能原地踏步无法提升 也有人说&#xff1a;测试行业相对于开发来说技术性很低&#xff0c;容易被取代。 这其实是对测试行业最大的误解。测试可深可浅&#xff0c;可窄可广…