Light Bulb
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3203
Time Limit:1 Second
Memory Limit:32768 KB
Compared to wildleopard's wealthiness, his brother mildleopard is rather poor. His house is narrow and he has only one light bulb in his house. Every night, he is wandering in his incommodious
house, thinking of how to earn more money. One day, he found that the length of his shadow was changing from time to time while walking between the light bulb and the wall of his house. A sudden thought ran through his mind and he wanted to know the maximum
length of his shadow.
Input
The first line of the input contains an integerT(T<= 100), indicating the number of cases.
Each test case contains three real numbersH,handDin one line.His the height of the light bulb whilehis the height of mildleopard.Dis
distance between the light bulb and the wall. All numbers are in range from 10-2to 103, both inclusive, andH-h>= 10-2.
Output
For each test case, output the maximum length of mildleopard's shadow in one line, accurate up to three decimal places..
Sample Input
3
2 1 0.5
2 0.5 3
4 3 4
Sample Output
1.000
0.750
4.000
如图,人左右走动,求影子L的最长长度。
根据图,很容易发现当灯,人的头部和墙角成一条直线时(假设此时人站在A点),此时的长度是影子全在地上的最长长度。当人再向右走时,影子开始投影到墙上,当人贴着墙,影子长度即为人的高度。所以当人从A点走到墙,函数是先递增再递减,为凸性函数,所以我们可以用三分法来求解。
#include <iostream>
#include <cstdio>
using namespace std;
double D,H,h;
const double EPS = 1e-10;
double Cal(double L)
{
return D * (h - L) / (H - L) + L;
}
double Solve(void)
{
double Left, Right;
double mid, midmid;
double mid_value, midmid_value;
Left = 0; Right = h;
while (Left + EPS < Right)
{
mid = (Left + Right) / 2;
midmid = (mid + Right) / 2;
mid_value = Cal(mid);
midmid_value = Cal(midmid);
if (mid_value >= midmid_value) Right = midmid;
else Left = mid;
}
return Left;
}
int main()
{
freopen("in.txt","r",stdin);
int t;
cin>>t;
while(t--)
{
cin>>H>>h>>D;
printf("%.3lf\n",Cal(Solve()));
}
}
分享到:
相关推荐
标题中的"ZOJ.gz_ ZOJ_ZOJ 1016_max flow_zoj 1045_zoj.rar" 提到了两个ZOJ(Zhejiang Online Judge)的题目,分别是1016和1045,这两个数字通常代表在线编程竞赛中的题目编号。这些题目通常涉及到算法和数据结构的...
最近在acm.zju.edu.cn上通过的题目的代码,都是比较有价值的题目
【标题】"zoj.rar_ zoj Deck java_oj_zoj_zoj.rar_在线评测" 提供的是 ZoJ(Zhejiang Online Judge)在线评测系统的源代码,这是一个用于编程竞赛和教育训练的在线判题平台。"Deck"可能指的是系统中的组件或功能模块...
zoj_1004.cpp 求单词字母进出栈后能形成目标串的进出方案 广度优先搜索求解
【ZOJ.zip】是一个压缩包,里面包含了与ZOJ(Zhejiang Online Judge)相关的ACM(International Collegiate Programming Contest)题解。ZOJ是一个在线编程竞赛平台,它为参赛者提供了一系列算法题目进行练习,以...
《ZOJ 4041问题的正确解法与程序分析》 ZOJ(Zhejiang Online Judge)是一个知名的在线编程竞赛平台,其中的题目编号为4041的题目吸引了众多程序员的关注。本篇文章将深入探讨ZOJ 4041的正确解法,并对提供的源代码...
《浙江大学ZOJ源码题解:题目类型与难易度分类》 浙江大学ZOJ(Zhejiang University Online Judge)是一个著名的在线编程竞赛平台,为广大学习计算机科学和技术的同学们提供了丰富的编程题目和实践机会。这个名为...
【标题】"ZOJ 1002" 是一个在线编程竞赛题目,源自ZOJ(Zhejiang Online Judge),这是一个面向ACM/ICPC(国际大学生程序设计竞赛)的在线评测系统。题目编号1002,通常表示该题是ZOJ平台上的一个问题,可能涉及算法...
标题“ZOJ1014.zip_zoj code_zoj1004”表明这是一个与ZOJ(ZeroJudge)在线判题系统相关的代码压缩包,其中可能包含了解决ZOJ问题1004的源代码。ZOJ是面向编程爱好者和学生的一个在线编程竞赛平台,它提供了各种算法...
标题中的"ZOJ1055-Oh_Those_Achin_Feet.rar"是指ZOJ(Zhejiang Online Judge)平台上的一道编程题目,编号为1055,题目名为"Oh, Those Achin Feet"。这是一道与图论相关的算法问题,主要涉及的是BFS(Breadth First ...
能AC 通过的c++代码,包括zoj1002,1091,1789
标题“zoj1383_zoj1383_”和描述中的“一个非常非常非常非常实用的zoj结题代码”暗示我们这可能是一个关于ZOJ(在线判题系统Zhejiang Online Judge)的编程挑战解决方案。ZOJ是一个为编程爱好者提供在线编程练习和...
【标题】"zoj.zip_zoj"所对应的资源是一个与ZOJ(Zhejiang Online Judge)相关的代码集合。ZOJ是浙江大学主办的一个在线编程竞赛平台,它提供了多种算法题目供用户练习和提交代码进行评测。这个压缩包很可能包含了在...
ZOJ4.16.rar_zoj 是一个与ZOJ(Zhejiang Online Judge)相关的压缩文件,这通常意味着它包含了某次程序设计竞赛,特别是2004年4月16日浙江省程序设计竞赛的题目。ZOJ是浙江大学主办的一个在线编程平台,它允许参赛者...
标题 "zoj2536.rar_zoj25" 暗示这是一份与ZOJ(中国大学在线编程竞赛)第2536号问题相关的提交文件,可能包含了参赛者或教练的代码解决方案。描述中的“这个不是用贪心做的”表明该问题可能涉及到一种非贪心算法的...
标题中的"zoj1204.rar_acm 1204_zoj1204"指的是浙江大学在线判题系统ZOJ(Zhejiang University Online Judge)上的第1204题,这是一个针对ACM/ICPC(国际大学生程序设计竞赛)训练的问题。在ACM/ICPC中,参赛者需要...
【标题】"zoj3607.rar_zoj贪心" 涉及的是ZOJ(Zhejiang Online Judge)在线编程竞赛平台上的一个问题,该问题编号为3607,且与贪心算法相关。这通常意味着我们需要解决一个通过贪心策略可以优化的计算问题。贪心算法...
【标题】"ZOJ-CPP.zip" 是一个包含ZOJ(在线判题系统ZeroJudge)网站上多个C++编程练习解答的压缩包。这个压缩包的名称表明它专注于C++语言,很可能是一个学习资源,旨在帮助初学者理解和解决动态规划问题。 【描述...
【标题】"zoj 源码700题"是指一个包含700多道ZOJ(在线判题系统Zhejiang Online Judge)编程竞赛题目的源代码集合。这个资源对于学习算法、提高编程技能以及准备编程竞赛的学员来说极具价值。 【描述】"包含了zoj...
浙江大学ZOJ(Zhejiang University Online Judge)是一个在线编程题解平台,专为计算机科学和技术领域的学生、教师以及编程爱好者提供。它包含了丰富的算法题目,是提升编程技能和算法理解的重要资源。"zheda.rar_...