题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1071
题意就是给你三个点P1,P2,P3,三个点都在抛物线上,P1是抛物线的最高点,直线经过P2,P3。
让你求直线与抛物线相交部分的面积。
刚开始做的时候有点懵逼,面积咋算?用积分,自己手算积分,然后把参数代进去
因为三个点坐标给定,直线方程可以求得
抛物线方程可以由最高点坐标和左边或者右边一个点的坐标算得
然后从最X2到X3积分
算是简单的几何题吧,关键是算积分吧!
#include<iostream>
int main()
{
double x1,y1,x2,y2,x3,y3,k,a,b,s;
int n;
scanf("%d",&n);
while(n--)
{
scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);
k=(y3-y2)/(x3-x2);
b=y3-k*x3;
a=(y3-y1)/((x3-x1)*(x3-x1));
s=(a*x3*x3*x3/3-(2*a*x1+k)*x3*x3/2+(a*x1*x1+y1-b)*x3)-(a*x2*x2*x2/3-(2*a*x1+k)*x2*x2/2+(a*x1*x1+y1-b)*x2);
printf("%.2lf\n",s);
}
return 0;
}