The area

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 6524    Accepted Submission(s): 4578

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1071

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.

 
Author
Ignatius.L
 
Recommend
 
题目描述:给出一个如图所示的抛物线和直线,已知两个交点坐标和抛物线的顶点坐标(顶点坐标是(x1,y1),两个交点的坐标是(x2,y2),(x3,y3)),求直线和抛物线所围成的图形的面积。
声明:这道题目并不难,只要学过定积分就一定会做,只不过一次ac了感觉很爽,所以留下此题自勉之~
代码:
 #include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
int main()
{
int zong;
cin>>zong;
while(zong--)
{
double x1,y1,x2,y2,x3,y3;
cin>>x1>>y1>>x2>>y2>>x3>>y3;
double t1=(x2*x2-x3*x3)*(y2-y1)-(x2*x2-x1*x1)*(y2-y3);
double t2=(x2*x2-x3*x3)*(x2-x1)-(x2*x2-x1*x1)*(x2-x3);
double b=t1/t2;
double a=(y2-y1-b*(x2-x1))/(x2*x2-x1*x1);
double c=y1-a*x1*x1-b*x1;
double k=(y2-y3)/(x2-x3);
double d=y2-k*x2;
double s1=1.0/3.0*a*(x3*x3*x3-x2*x2*x2)+1.0/*b*(x3*x3-x2*x2)+c*(x3-x2);
double s2=(k*(x2+x3)+*d)*(x3-x2)*1.0/2.0;
double s=s1-s2;
printf("%.2lf\n",s);
}
return ;
}
 
 
 

poj 1701【数学几何】的更多相关文章

  1. hdu 1577 WisKey的眼神 (数学几何)

    WisKey的眼神 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  2. hdu 1115 Lifting the Stone (数学几何)

    Lifting the Stone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  3. ACM: FZU 2110 Star - 数学几何 - 水题

     FZU 2110  Star Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u  Pr ...

  4. POJ 2002 Squares 几何, 水题 难度: 0

    题目 http://poj.org/problem?id=2002 题意 已知平面内有1000个点,所有点的坐标量级小于20000,求这些点能组成多少个不同的正方形. 思路 如图,将坐标按照升序排列后 ...

  5. Jack Straws POJ - 1127 (几何计算)

    Jack Straws Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5428   Accepted: 2461 Descr ...

  6. gcc【数学几何】

    GCC Time Limit: 1000MS Memory limit: 65536K 题目描述 The GNU Compiler Collection (usually shortened to G ...

  7. POJ 1410 Intersection --几何,线段相交

    题意: 给一条线段,和一个矩形,问线段是否与矩形相交或在矩形内. 解法: 判断是否在矩形内,如果不在,判断与四条边是否相交即可.这题让我发现自己的线段相交函数有错误的地方,原来我写的线段相交函数就是单 ...

  8. LightOj1385 - Kingdom Division(数学几何题)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1385 题意:下图中已知面积 a b c 求 d; 如果d的面积不确定,输出-1. 连接 ...

  9. POJ 1701

    /* Every tenant went up N floors would make the dissatisfied degree rise N * a + 0.5 * N * (N - 1) d ...

随机推荐

  1. Android活动管理工具

    ActivityCollector.java import android.app.Activity; import java.util.ArrayList; import java.util.Lis ...

  2. Linux ffmpeg命令的介绍与使用

    ffmpeg使用语法 ffmpeg [[options][`-i' input_file]]... {[options] output_file}... 如果没有输入文件,那么视音频捕捉(只在Linu ...

  3. POJ 3281 网络流dinic算法

    B - Dining Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit S ...

  4. centos mysqldb 安装

    yum install mysql-devel.x86_64 yum install python-devel pip install MySQL-python

  5. [转]ubuntu 14.04 如何开启和关闭触控板

    转自:http://lxn348567248.blog.163.com/blog/static/1201759252014649443513/ 禁用触摸板的命令:  sudo rmmod psmous ...

  6. phpcms二层栏目下拉和当前栏目高亮

    这里需要嵌套loop标签,既双层循环 第一层loop的catid = 0代表顶级栏目 第二层loop的catid = "$r[catid]"代表上层循环的栏目id <ul c ...

  7. 【GoLang】GoLang 错误处理 -- 官方推荐方式 示例

    最严谨的方式,Always检查error,并做相应的处理 项目结构: 代码: common.go: package common import ( "github.com/pkg/error ...

  8. BIOS开启虚拟化

    启动时根据提示按del 键按 F10 键以配置 BIOS使用箭头键滚动到“System Configuration”选择“Virtualization Technology”,然后按 Enter 键选 ...

  9. WinForm开发框架--动态读取DLL模式

    1\ WinForm开发框架--动态读取DLL模式   http://www.2cto.com/kf/201306/217199.html 2\ 广州爱奇迪     http://www.iqidi. ...

  10. 【转】Git如何Check Out出指定文件或者文件夹

    [转]Git如何Check Out出指定文件或者文件夹http://www.handaoliang.com/a/20140506/195406.html 在进行项目开发的时候,有时候会有这样的需求那就 ...