1 条题解
-
0
C++ :
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; double D,H,h; double decide(double x){return D-x+H-(H-h)*D/x;} int main() { int t;scanf("%d",&t); while(t--) { scanf("%lf%lf%lf",&H,&h,&D);//H:灯泡高度,h:身高,D:灯泡和墙水平距离 double l=D-h*D/H,r=D; while(r-l>1e-8) { double lmid=l+(r-l)/3; double rmid=r-(r-l)/3; if(decide(lmid)>decide(rmid))r=rmid; else l=lmid; } printf("%.3lf\n",decide(l)); } return 0; }
- 1
信息
- ID
- 1058
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 2
- 上传者