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

HDU 5954 - Do not pour out - [积分+二分][2016ACM/ICPC亚洲区沈阳站 Problem G]

时间:2018-11-17 14:41:45      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:ini   pid   ber   block   ica   surf   分享图片   hdu   point   

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5954

Problem Description
You have got a cylindrical cup. Its bottom diameter is 2 units and its height is 2 units as well.
The height of liquid level in the cup is d (0 ≤ d ≤ 2). When you incline the cup to the maximal angle such that the liquid inside has not been poured out, what is the area of the surface of the liquid?

Input
The first line is the number of test cases. For each test case, a line contains a float-point number d.

Output
For each test case, output a line containing the area of the surface rounded to 5 decimal places.

Sample Input
4
0
1
2
0.424413182

Sample Output
0.00000
4.44288
3.14159
3.51241

 

题意:

有一个圆柱形杯子,底部直径为 $2$,高为 $2$,告诉你当杯子水平放置时水面高度为 $d(0 \le d \le 2)$,

求当在水不倒出来的前提下杯子倾斜角度最大时,水面面积。

 

题解:

(参考https://blog.csdn.net/danliwoo/article/details/53002695

当 $d=1$ 时,是临界情况。

当 $d>1$ 时,水面为一个椭圆,设 $\theta$ 为水面与杯底的夹角,则 $S = \pi R r = \pi \cdot \frac{1}{cos \theta} \cdot 1 = \frac{\pi}{cos \theta}$。

当 $d<1$ 时,水面为一个椭圆截取一部分:

技术分享图片若将水此时的形状,按平行于杯底的方向,分割成若干薄面,每个薄面的面积为 $S_0$,则水的体积为

$V = \int_{0}^{2}S_0dy$;

不难求得

$y_0 = x_0 tan \theta$

$1 + \cos \alpha = x_0$

$S_0 = \pi - \alpha + \sin \alpha \cos \alpha$

上三式,对于 $0 \le \alpha \le \pi$(即 $2 \ge x_0 \ge 0$)均成立。

则水的体积定积分可变为

$V = \int_{0}^{2}(\pi - \alpha + \sin \alpha \cos \alpha)d[(1 + \cos \alpha)\tan\theta]$

$\tan\theta \int_{\pi}^{\alpha_1}(\pi - \alpha + \sin \alpha \cos \alpha)(- \sin \alpha)d\alpha$

其中 $\alpha_1 = \arccos(1-\frac{2}{\tan\theta})$。

对上式积分得

$V = \tan \theta [(\pi \cos \alpha) + (\sin \alpha - \alpha \cos \alpha) - \frac{1}{3} \sin^3 \alpha]_{\pi}^{\alpha_1}$

那么,我们可以二分 $\theta$,使得 $V$ 逼近 $\pi d$,从而确定 $\theta$,进而求得水面面积。

HDU 5954 - Do not pour out - [积分+二分][2016ACM/ICPC亚洲区沈阳站 Problem G]

标签:ini   pid   ber   block   ica   surf   分享图片   hdu   point   

原文地址:https://www.cnblogs.com/dilthey/p/9973558.html

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