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

  • 相关阅读:
    自定义组件 -- android联系人
    ListView嵌套出现的问题
    编译Speex生成so库文件(android-speex)
    MacOs终端忽略大小写
    Eclipse报错:Setting property 'source' to 'org.eclipse.jst.jee.server:test1' did no
    Eclipse 反编译插件安装jad
    spring默认启动位置以及contextConfigLocation设置源码解析
    git使用2
    Git常用命令
    spring MVC配置详解
  • 原文地址:https://www.cnblogs.com/SDUTYST/p/2626200.html
Copyright © 2011-2022 走看看