The 14th UESTC Programming Contest Final I – Intersection 计算几何、积分、精度

ProLightsfx 2017-9-22 150 9/22

I - Intersection 计算几何、积分、精度

My Solution

画个图,然后,分成小圆锥和球用平面切下来一个帽 两块,小圆锥的半径可以用勾股定理和相似三角形来求,然后另外一部分用一元积分来求,

刚开始以为是二元积分,想了好长时间……

然后主要就是注意精度问题,如果有根号的,在最终等式中有平方或立方就应当先去掉俩根号。

有些题,如果碰到精度问题可以考虑 加一个eps 然后输出带要求位数小数的答案。

#include<cstdio>
#include<bits/stdc++.h>

using namespace std;
//const int maxn=1e6+1000;
const double pi=acos(-1);

int main(void)
{
	int t;
	double r1,r2;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%lf%lf",&r1,&r2);
		double x1=r1*r1;
		double x2=r2*r2;
		double h=x1/sqrt(x1+x2);
		double v=pi*x1*x2/(x1+x2)*h*(1.0/3.0) + (2.0/3.0)*pi*r1*r1*r1-pi*x1*h+pi/3.0*h*x1*x1/(x1+x2);
		printf("%.4f\n",v);
		
	}
}

 

 

非特殊说明,本博所有文章均为博主原创,未经许可不得转载。

https://www.prolightsfxjh.com/

Thank you!

                                                                                                                                             ------from ProLightsfx

- THE END -

ProLightsfx

11月15日01:08

最后修改:2024年11月15日
0

非特殊说明,本博所有文章均为博主原创,未经许可不得转载。

共有 0 条评论