您的位置:首页 > 其它

ZOJ 3203 Light Bulb【三分】

2013-03-02 10:06 381 查看
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3366

题目大意:求人从左向右走动时,影子的长度L的最大值

View Code

#include<stdio.h>

double D, H, h;

double cal(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);

double left=(H-h)*D/H, right=D, mid, midmid;

while(left+1e-9<=right)  //while(left+1e-8<=right) 就是wa

{

mid=(left+right)/2;

midmid=(mid+right)/2;

if(cal(mid)>=cal(midmid))

right=midmid;

else

left=mid;

}

printf("%.3lf\n", cal(mid));

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: