简单画个草稿图可知,直接连接要移动到的圆心和原来的圆心线段,那么最快的方法即为每次绕着这条线段与圆桌的交点旋转180°,那么每次圆心可移动直径的距离,最终答案即为线段长度除以直径
#include <iostream>
#include <cmath>
using namespace std;
int main() {
long r, x, y, x1, y1;
while (cin >> r >> x >> y >> x1 >> y1) {
long dis = sqrt((x1 - x) * (x1 - x) + (y1 - y) * (y1 - y));
cout << dis / (2 * r) << endl;
}
return 0;
}
时间复杂度:O(1)
空间复杂度:O(1)

京公网安备 11010502036488号