码迷,mamicode.com
首页 > 其他好文 > 详细

ZJNU 1262 - 电灯泡——中高级

时间:2020-01-26 22:17:21      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:while   图像   三分法   main   函数   影子   情况   没有   nbsp   

在影子没有到达墙角前,人越远离电灯,影子越长,所以这一部分无需考虑

所以只需要考虑墙上影子和地上影子同时存在的情况

因为在某一状态存在着最值

所以如果以影子总长与人的位置绘制y-x图像

会呈一个类似y=-x^2函数的图像

所以就可以根据三分法找出最值点

 1 /*
 2 Written By StelaYuri
 3 */
 4 #include<stdio.h>
 5 double H,h,D;
 6 double len(double lh){
 7     return lh+D*(h-lh)/(H-lh);
 8 }
 9 int main(){
10     int T;
11     double l,r,m1,m2;
12     scanf("%d",&T);
13     while(T--){
14         scanf("%lf%lf%lf",&H,&h,&D);
15         l=0;r=h;
16         while(r-l>=1e-5){
17             m1=l+(r-l)/3.0;//三分左
18             m2=l+(r-l)/1.5;//三分右
19             if(len(m1)>len(m2))
20                 r=m2;
21             else
22                 l=m1;
23         }
24         printf("%.3lf\n",len(l));
25     }
26     
27     return 0;
28 }

 

ZJNU 1262 - 电灯泡——中高级

标签:while   图像   三分法   main   函数   影子   情况   没有   nbsp   

原文地址:https://www.cnblogs.com/stelayuri/p/12234830.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!