2021年河南省赛 L.手动计算
题意:
给出你来两个椭圆,一个焦点在X轴另一个焦点在Y轴上,(就是一个横着一个竖着),让你求出他们并起来的面积.
思路:
我们先举着例子画出图像

然后我们知道椭圆的面积就是 PIab ,之后我们现在就需要知道他们两个公共的部分,也就是他们的交.跟据象限我们可以将他们的交分成4个相等的部分,然后我们跟据这个不太规则的图形求面积不好求得出,需要用积分来求面积,那么我们就需要求出交点的横坐标和条先的一次方程式,然后推出他的积分即可,推积分的过程不会的话这个会对你有帮助.交点的横坐标就比较好求两个未知数,两个方程,我们消掉一个未知数,然后取整数即可.
void solve()
{
double ans=0.0;
cin>>a>>b>>c>>d;
if(a>c&&b>d){
ans=PI*a*b;
}else if(c>a&&d>b){
ans=PI*c*d;
}else {
double x= sqrt((a*a*c*c*(d*d-b*b))/(a*a*d*d-c*c*b*b));
double ans1 = 0.5*a*b*(x/a)*sqrt(1-x*x/(a*a))+0.5*a*b*(asin(x/a));
+a*a*asin(x/a)/2;
double ans2 = PI*c*d/4-0.5*c*d*x/c*sqrt(1-x*x/(c*c))-0.5*c*d*asin(x/c);
ans = PI*a*b+PI*c*d-4*(ans1+ans2);
}
printf("%.1lf\n",ans);
}

浙公网安备 33010602011771号