正题
题目链接:https://ac.nowcoder.com/acm/contest/894/A
题目大意
一个大半圆里面放两个小半圆要求两个小半圆的半径之和等于大半圆的半径,而且红色面积为SSS。
求最小的大半圆的半径。
解题思路
假设小半圆的半径为x,yx,yx,y那么大半圆的半径为x+yx+yx+y。那么我们有
π(x+y)2−πx2−πy2=2Sπ(x+y)^2-πx^2-πy^2=2Sπ(x+y)2−πx2−πy2=2S
(x+y)2−x2−y2=2Sπ(x+y)^2-x^2-y^2=\frac{2S}{π}(x+y)2−x2−y2=π2S
x2+2xy+y2−x2−y2=2Sπx^2+2xy+y^2-x^2-y^2=\frac{2S}{π}x2+2xy+y2−x2−y2=π2S
2xy=2Sπ2xy=\frac{2S}{π}2xy=π2S
xy=Sπxy=\frac{S}{π}xy=πS
后面的是一个定值,然后要求x+yx+yx+y最大那么最优答案就是
x=y=Sπx=y=\sqrt{\frac{S}{π}}x=y=πS
也就是ans=2Sπans=2\sqrt{\frac{S}{π}}ans=2πS
codecodecode
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const double pi=3.1415926535898;
double s;
int main()
{scanf("%lf",&s);s/=pi;s=sqrt(s);printf("%.3lf",s*2);
}