您的位置:首页 > 其它

hdu1071(抛物线,直线以及二重积分)

2011-04-18 20:38 232 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1071

View Code

//抛物线 yp=a*(x-b)^2+c;
//直线 yz=k*x+s;
//二重积分公式: f(x0,x1)(yp-yz)*dx;

#include"iostream"
usingnamespace std;
double a,b,c,k,s;
double fun(double x)
{
return1.0*(a*x*x*x/3)-1.0*(a*b+k/2)*x*x+(a*b*b+c-s)*x;
}
int main()
{
int t;
double x1,y1,x2,y2,x3,y3;
scanf("%d",&t);
while(t--)
{
scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);

k=(y3-y2)/(x3-x2);
s=y3-k*x3;

a=(y2-y1)/((x2-x1)*(x2-x1));
b=x1;
c=y1;

double area=1.0*(fun(x3)-fun(x2));
printf("%.2lf\n",area);
}
return0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: