传送门
首先要发现其实木棍覆盖区域是圆环形状的。
于是我们要求出大圆半径R和小圆半径r
首先大圆半径显然是在两个端点处取到的。
然后,发现点在木棍上移动是与圆心距离的函数是单峰函数。
于是我们可以三分求最小值。
然后问题九转化成了圆形面积和长方形面积的交。
分类要论以下就可以求出来了。
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define eps 1e-10
#define pi acos(-1)
#define db double
using namespace std;
int t;
db d1,d2;
db sqr(db x){
return x*x;
}
struct P{
db x,y;
P(){};
P(db _,db __):
x(_),y(__){}
void read(){
scanf("%lf%lf