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

TZOJ--3939: FIFA World Cup 2006(几何公式)

时间:2018-12-03 16:33:44      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:1.4   过程   OWIN   中间   角度   ann   watch   contains   tween   

3939: FIFA World Cup 2006 

时间限制(普通/Java):1000MS/3000MS     内存限制:65536KByte

描述

Football is one of the most popular words in 2006.

Bob cannot go to Germany for the FIFA world cup 2006 and can only watch the TV instead.

As the following figure, height of the TV is L, and TV is placed at H above Bob‘s eyes, shown in Figure.

Bob want to maximaze the angle α. You need to tell Bob x, the distance between the TV and Bob‘s eyes, when the angle α is maximum.

Attention please, x>=D (or TV will do harm to Bob).

技术分享图片

输入

The first line of the input is a positive integer T. T is number of the test cases followed.

Each test case contains three integers L, H, D (-1000<H<1000, 0<L, D< 1000).

There may be one or several spaces before or after the integer.

输出

The output of the program should consist of one line of output for each test case.

The output of each test case only contains x rounded to two decimal places past the decimal point, and always showing the two decimal places past the decimal point.

No any redundant spaces is needed.

样例输入

3
2 -1 10
1 1 1
1 -2 1

样例输出

10.00
1.41
1.41

题目来源

TOJ

 

题目链接:http://tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=3939

题目大意:Bob想要最大的角度观看世界杯,求出这时候的x值。

题目已经画好了两种情况的图片,根据这两种情况分类讨论。

第二种情况,若H小于L时,那么X越大角度就会越小,所以这时候的X就是题目要求的最小值D

若H大于L是就和第一种情况一样。

第一种情况,x=sqrt(h*H+H*L)是取最小值,证明过程如下:

技术分享图片

 

至于为什么是这个点是极小值,其实感觉一下点越远角度越小,越近角度也越小,所以是一个中间值是角度的最大值,f(x)的极小值,这个不做证明了,下图给出f(x)的大致图像

技术分享图片

 

emmm,我几何全忘了,有简单方法证明可以联系我,告诉我一下,本人不擅长向量法。

 

#include<stdio.h>
#include<math.h>
int main()
{
	double l,h,d,p;
	int n;
	scanf("%d",&n);
	while(n--)
	{
		scanf("%lf %lf %lf",&l,&h,&d);
		if(-h<=l&&h<0)p=d;
		else p=sqrt(l*h+h*h);
		if(p<d)p=d;
		printf("%.2lf\n",p);
	}
	return 0;
}

  

TZOJ--3939: FIFA World Cup 2006(几何公式)

标签:1.4   过程   OWIN   中间   角度   ann   watch   contains   tween   

原文地址:https://www.cnblogs.com/Anidlebrain/p/10055997.html

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