[Luogu] P9581 题解

P9581 题解

题意:设数轴上有两定点 \(A,B\),一动点 \(P\) 位于原点,求 \(P\) 到达 \(A,B\) 所需的最短路径的距离。

本题需分类讨论。
\(a,b\) 分别为 \(A,B\) 的坐标。
\(A,B\) 都同时位于点 \(P\) 左侧或右侧,即坐标正负性相同,此时 \(P\) 到达 \(A,B\) 的最短距离就是 \(\text{max}(|a|,|b|)\),因为 \(P\) 可以经过一点到达另一点。
\(A,B\) 坐标正负性不同,则 \(P\) 到达一点后还需要原路返回至原点,再向另一点运动,此时最短距离就是 \(2\times\text{min}(|a|,|b|)+\text{max}(|a|,|b|)\)

#include<bits/stdc++.h>
using namespace std;
int a,b,absa,absb;
int main()
{
	cin>>a>>b;
	absa=abs(a);
	absb=abs(b);
	if((absa==a && absb==b)||(absa!=a && absb!=b)){//正负性相同
		cout<<max(absa,absb);
	}
	else//正负性不同
	cout<<2*min(absa,absb)+max(absa,absb);
	return 0;
}
渊深,启动!
posted @ 2023-11-17 20:41  FurippuWRY  阅读(29)  评论(0)    收藏  举报