题解:P12130 [蓝桥杯 2025 省 B] 移动距离
本题的思路非常清晰,想要往y轴正方向移动必须靠方式二旋转,旋转的半径取决于距离x轴的距离,如果我们用方式一和方式二多次组合,会多走一段水平距离,且圆弧也会变长,所以我们只需要考虑x轴移动到最长处再旋转即可。
#include<bits/stdc++.h>
using namespace std;
double pi=3.1415926,a=233,b=666;
int main()
{
double c=sqrt(a*a+b*b);//求斜边长
double angle=a/c;//算余弦
double ans=(acos(angle)*180/pi)/360*pi*c*2;//圆弧长加上半径,这里我是用acos的弧度制转化角度做
cout<<floor(ans+c);//取整输出即可
return 0;
}