首页 > 其他 > 详细

[HDU1071]The area

时间:2017-04-03 23:01:06      阅读:236      评论:0      收藏:0      [点我收藏+]

题目:The area

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1071

分析:

 (1)推抛物线和直线的方程式,然后直接用微积分计算就好了。

 (2)看到一种很有趣的解法"抛物线弓形面积阿基米德算法",传送门:http://www.cnblogs.com/geloutingyu/p/5981409.html

代码:

#include <cstdio>
double a,b,c;
double f(double x){
    return a*x*x*x+b*x*x+c*x;
}
int main(){
    int Case;scanf("%d",&Case);
    double x1,x2,x3,y1,y2,y3,a1,a2,b1,b2,c1,c2;
    for(;Case--;){
        scanf("%lf%lf %lf%lf %lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);
        a1=((y2-y1)/(x2-x1)-(y3-y2)/(x3-x2))/(x1-x3);
        b1=(y2-y1)/(x2-x1)-a1*(x2+x1);
        c1=y1-a1*x1*x1-b1*x1;
        a2=0;
        b2=(y3-y2)/(x3-x2);
        c2=y2-b2*x2;
        a=(a1-a2)/3;
        b=(b1-b2)/2;
        c=c1-c2;
        printf("%.2f\n",f(x3)-f(x2));
    }
    return 0;
}

 

[HDU1071]The area

原文:http://www.cnblogs.com/hjj1871984569/p/6663779.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!