hdu 1071 The area(定积分求面积)

时间:2021-01-08 21:23:32


hdu 1071 The area


抛物线顶点式:y=a(x-h)^2+k  顶点:(h,k)
定积分求抛物线在p2.x和p3.x之间和x轴围成的面积,再减去下面那个梯形面积


#include<stdio.h>
#include<string.h>
#include<math.h>
struct point
{
double x,y;
};
int main()
{
point p1,p2,p3;
int cas;
scanf("%d",&cas);
while(cas--)
{
scanf("%lf%lf",&p1.x,&p1.y);
scanf("%lf%lf",&p2.x,&p2.y);
scanf("%lf%lf",&p3.x,&p3.y);

double a=(p2.y-p1.y)/pow(p2.x-p1.x,2);
double ans=a/3*fabs(pow(p3.x-p1.x,3)-pow(p2.x-p1.x,3))+p1.y*fabs(p3.x-p2.x);
ans-=(p2.y+p3.y)*fabs(p2.x-p3.x)/2;
printf("%.2lf\n",ans);
}
return 0;
}