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

  • 相关阅读:
    github常用项目汇总
    javaweb Servlet接收Android请求,并返回json数据
    Hibernate 工具类
    JDBC 工具类
    050 Android 百度地图的使用
    Hibernate 连接数据库,数据库返回数据超过限制报错
    049 Android Fragment向另一个Activity传值
    java 实用Util汇总
    关于The requested PHP extension ext-pdo_sqlite * is missing from your system. Install or enable PHP's pdo_sqlite extension.的解决
    Symfony命令大全
  • 原文地址:https://www.cnblogs.com/SDUTYST/p/2626200.html
Copyright © 2011-2022 走看看