HDOJ 1071

顶点式 Y=a(X-h)^2+k
cout<<setprecision(2)    到大数就表示成科学计数法形式的了 


#include <iostream>
#include <stdio.h>
#include <iomanip>

using namespace std;

struct Point
{
    double x;
    double y;
};

double fx(double a,double h,double k,double x)
{
    return ((1./3)*a*x*x*x-h*a*x*x+(a*h*h+k)*x);
}

int main()
{
int m;
cin>>m;
for(int l=0;l<m;l++)
{
    Point  p[3];
    for(int i=0;i<3;i++)
    {
        cin>>p.x>>p.y;
    }
    double k=p[0].y;
    double h=p[0].x;

    double a=(p[1].y-k)/(p[1].x-h)/(p[1].x-h);

    double s1=fx(a,h,k,p[2].x)-fx(a,h,k,p[1].x);
    double s2=(p[1].y+p[2].y)/2.*(p[2].x-p[1].x);

    double area=s1-s2;
    printf("%.2lf\n",area);

}

    return 0;
}



posted @ 2013-03-13 03:57  码代码的猿猿  阅读(131)  评论(0编辑  收藏  举报