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

  • 相关阅读:
    Devops的衍生-腾讯优测
    如何评估软件测试的效率
    优测云服务平台如何破解兼容性测试操作难点
    测试工程师进阶面试题目大合集
    测试人员必看-做好自动化测试的7大技能
    史上最全软件开发|程序员必备的工具集
    腾讯优测优分享 | 高质量产品、高质量照片
    腾讯优测优分享 | 多媒体,多问题
    腾讯优测优分享 | 双卡双待-工程师难言的痛
    C#面向对象基础
  • 原文地址:https://www.cnblogs.com/SDUTYST/p/2626200.html
Copyright © 2020-2023  润新知