链接
http://acm.hdu.edu.cn/showproblem.php?pid=3668
题解
这个奇怪东西的体积就等于圆柱的体积和减去交的体积
研究中间相交部分的体积,我可以把这个部分沿着两个圆柱的中轴确定的平面割开,
然后建立坐标系,可以发现其在坐标面上的投影是半圆,沿着某个方向的平面去割这个东西,得到的是一个个正方形,设高度为
x
x
x,正方形的边长为
2
r
2
−
h
2
4
2\sqrt {r^2-\frac{h^2}{4}}
2r2−4h2。注意这个牟合方盖可能不完整,假设从高度为
a
a
a的地方开始这个东西是圆弧,那么相交部分的体积为
[
4
∫
a
r
(
r
2
−
x
2
)
d
x
+
h
2
a
]
×
2
[4\int_a^r(r^2-x^2)dx+h^2a]\times 2
[4∫ar(r2−x2)dx+h2a]×2
代码
//定积分
#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1);
int main()
{
double r, h, a, crs;
while(~scanf("%lf%lf",&r,&h))
{
a = sqrt(max(0.0,r*r-h*h/4));
crs = 4*(r*r*(r-a)-(r*r*r-a*a*a)/3)+h*h*a;
crs *= 2;
printf("%.4lf\n",2*PI*h*r*r-crs);
}
return 0;
}