手玩一下样例可以想到这样的三角形: 即高在圆心和给定的连线上,且一个顶点在在这条直线和圆的另一侧交点上(图中点 )。 令给定点到圆心的距离为 。 接下来讨论高应当取多少: 如果 ,此时随着 增加,底也在增加,所以面积一定小于 的情况。 所以只需考虑 的情况。 ,是一个凸函数,三分或者求导求极值即可。 注意特判 的情况(有些写法会出现 )。 const db eps = 1e-12; typedef pair<db, db> PDD; void solve(){ ll r,s,x,y,x0,y0;cin>>r>>x>>y>>s...