[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;
}

浙公网安备 33010602011771号