• HDOJ 1071


    View Code
    Problem Description
    
     Ignatius bought a land last week, but he didn't know the area of the land because the land is enclosed by a parabola and a straight line. The picture below shows the area. Now given all the intersectant points shows in the picture, can you tell Ignatius the area of the land?
    
    Note: The point P1 in the picture is the vertex of the parabola.
    
    
    
    
     
    Input
    
     The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow.
    Each test case contains three intersectant points which shows in the picture, they are given in the order of P1, P2, P3. Each point is described by two floating-point numbers X and Y(0.0<=X,Y<=1000.0).
     
    
    Output
    
     For each test case, you should output the area of the land, the result should be rounded to 2 decimal places.
     
    
    Sample Input
    
    2
    5.000000 5.000000
    0.000000 0.000000
    10.000000 0.000000
    10.000000 10.000000
    1.000000 1.000000
    14.000000 8.222222
    
     Sample Output
    
    33.33
    40.69
    
     Hint
    
     For float may be not accurate enough, please use double instead of float
    #include<stdio.h>
    #include<math.h>
    int main()
    {
        int T;
        double x1, x2, x3, y1, y2, y3, a, b, c, s;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);
            a = ((y2-y1)*(x3-x2)/(x2-x1)-(y3-y2))/((x2*x2-x1*x1)*(x3-x2)/(x2-x1)-(x3*x3-x2*x2));
            b = ((y2-y1)-a*(x2*x2-x1*x1))/(x2-x1);
            c = y1-a*x1*x1-b*x1;
            s = (a/3*x3*x3*x3+b/2*x3*x3+c*x3)-(a/3*x2*x2*x2+b*x2*x2/2+c*x2)-(y3+y2)*(x3-x2)/2;
            printf("%.2lf\n",s);
        }
        return 0;
    }

    比赛的时候这道题目我只用了不到十分钟,读题加AC不到十分钟,其实它很简单,很普通的算术题,没有任何算法在里面,看到大家都不去做这道题,我觉得可能是大家在研究算法的时候慢慢忽略了数学这一领域了吧,遇到高中时就滚瓜烂熟的数学题,却不敢去解了。我的算法学的不好,但是却时常会在题目中考虑是不是可以用数学的知识解答,而且很多题目中确实只用到数学理论就可以通过,但是算法中却没有这些。

  • 相关阅读:
    ASP与sql存储过程
    SharpWebMail介绍和安装(转)
    安全编程: 验证输入
    【转】 数据库备份与还原处理
    权限管理设计、分析、实现参考资料
    权限设计
    提高查询速度方法总结
    乱七八糟知识点
    阿里分布式事务框架Seata原理解析
    分布式事务
  • 原文地址:https://www.cnblogs.com/SDUTYST/p/2626200.html
Copyright © 2020-2023  润新知