2021年河南省赛 L.手动计算

题目链接

题意:

给出你来两个椭圆,一个焦点在X轴另一个焦点在Y轴上,(就是一个横着一个竖着),让你求出他们并起来的面积.

思路:

我们先举着例子画出图像

image

然后我们知道椭圆的面积就是 PI ab ,之后我们现在就需要知道他们两个公共的部分,也就是他们的交.跟据象限我们可以将他们的交分成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);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值