1737. 传送(分类讨论)
分类 讨论 传送
2023-09-14 09:14:58 时间
Question
Farmer John 最讨厌的农活是运输牛粪。
为了精简这个过程,他制造了一个伟大的发明:便便传送门!
与使用拖拉机拖着装满牛粪的大车从一个地点到另一个地点相比,他可以使用便便传送门将牛粪从一个地点瞬间传送到另一个地点。
Farmer John 的农场沿着一条长直道路而建,所以他农场上的每个地点都可以简单地用该地点在道路上的位置来表示(相当于数轴上的一个点)。
一个传送门可以用两个数 x 和 y 表示,被拖到地点 x 的牛粪可以瞬间传送到地点 y,反之亦然。
Farmer John 想要将牛粪从地点 a 运输到地点 b,他建造了一个可能对这一过程有所帮助的传送门(当然,如果没有帮助,他也可以不用)。
请帮助他求出他需要使用拖拉机运输牛粪的总距离的最小值。
输入格式
输入仅包含一行,为四个用空格分隔的整数:a 和 b,表示起始地点和结束地点,后面是 x 和 y,表示传送门。
所有的位置都是范围为 0…100 的整数,不一定各不相同。
输出格式
输出一个整数,为 Farmer John 需要用拖拉机运输牛粪的最小距离。
输入样例:
3 10 8 2
输出样例:
3
样例解释
在这个样例中,最佳策略是将牛粪从位置 3 运到位置 2,传送到位置 8,再运到位置 10。
所以需要用拖拉机的总距离为 1+2=3。
Ideas
分三种情况讨论
ab之间有两个传送
ab之间无传送
ab之间有一个传送
Code
a,b,x,y = list(map(int,input().strip().split()))
if a > b:
a,b = b,a
if x > y:
x,y= y,x
# 1.a和b之间有俩传送
if a<=x and b>=y:
print(x-a+b-y)
# 2. a和b之间有一个传送
elif a<x<b and y>b:
print(min((b-a),(x-a+y-b)))
elif a<y<b and x<a:
print(min((b-a),(a-x+b-y)))
# 3.a和b之间无传送
else:
print(b-a)
相关文章
- 如何修改单条待办的所属分类?待办事项转移分类的设置教程
- 使用libsvm实现文本分类
- 字符串统计:分类统计、求和
- 机器学习笔记 - 如何对两个分类变量使用卡方检验?
- PCL 点云按分类标签进行渲染
- Aitit 认证体系之道 attilax著艾龙著 1. 认证体系分类2 1.1. 按照语言来分 java net php2 1.2. 按照平台来分 web cs 桌面2 1.3. 综合性认证
- CV之IC之VGG16:基于Keras框架利用卷积神经网络VGG16算法的迁移技术实现猫狗分类识别(图片数据增强→保存h5模型)案例训练过程记录
- ML之DT:利用DT(DTC)实现对iris(鸢尾花)数据集进行分类并可视化DT结构
- 华为云——ModelArts-智能文本分类测试
- 001-docker-net-网络设置分类、Bridge详解、mac docker说明
- spark scala word2vec 和多层分类感知器在情感分析中的实际应用
- IT:后端进阶技术路线图(初级→中级→高级)、后端开发工程师(技术方向分类之后台业务开发/中间件/内核/分布式架构)基础知识简介、技术路线/技术趋势指南(如何选择自己的技术方向)之详细攻略
- NLP进阶,使用TextRNN和TextRNN_ATT实现文本分类
- Bert实战:使用Bert实现文本分类。
- 1749. 阻挡广告牌 II(分类讨论+区间合并)
- 社交距离 I(分类讨论、贪心)
- openEuler操作系统版本分类及其命名方式