本文主要是介绍hdu 1714 RedField(积分问题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
http://acm.hdu.edu.cn/showproblem.php?pid=1714
求解红色部分的面积
分析:在第一象限内:
设OP和椭圆的交点是(x1,y1),面积的积分:
同时:
所以,
再求解交点:
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;int main()
{int t;double a,b,x,y;double k,x1,s;cin>>t;while(t--){scanf("%lf%lf%lf%lf",&a,&b,&x,&y);x=fabs(x); y=fabs(y); // 转成第一象限1k=y/x;x1=a*b/sqrt(b*b+a*a*k*k);s=a*b/2*acos(x1/a);printf("%.2lf\n",s);}return 0;
}
这篇关于hdu 1714 RedField(积分问题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!