hdoj 1071 The area
来源:互联网 发布:mox反应堆 知乎 编辑:程序博客网 时间:2024/04/30 06:37
The area
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 8229 Accepted Submission(s): 5780
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.
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).
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
25.000000 5.0000000.000000 0.00000010.000000 0.00000010.000000 10.0000001.000000 1.00000014.000000 8.222222
Sample Output
33.3340.69HintFor float may be not accurate enough, please use double instead of float.
数学知识求积分,先求曲线方程系数,再求直线方程系数。
#include<stdio.h>#include<string.h>#include<math.h>int main(){int t,n,i,j;double x1,y1,x2,y2,x3,y3,start,end;double a,b,c;double k,d;scanf("%d",&t);while(t--){scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);if(x2>x3){start=x3;end=x2;}else{start=x2;end=x3;}b=((y3-y1)*(x2*x2-x1*x1)-(y2-y1)*(x3*x3-x1*x1))/((x3-x1)*(x2*x2-x1*x1)-(x2-x1)*(x3*x3-x1*x1));a=((y2-y1)-b*(x2-x1))/(x2*x2-x1*x1);c=y1-a*x1*x1-b*x1;k=(y3-y2)/(x3-x2);d=y3-k*x3;start=a*start*start*start/3+b*start*start/2+c*start-k*start*start/2-d*start;end=a*end*end*end/3+b*end*end/2+c*end-k*end*end/2-d*end;printf("%.2lf\n",fabs(start-end));}return 0;}
0 0
- HDOJ 1071 The area
- hdoj 1071 The area
- hdoj 1071 The area
- hdoj 1071 The area 【简单数学题】
- HDOJ 1071:Area
- HDOJ 1071:Area
- HDOJ---ACMSteps---2.1.7The area
- HDOJ 题目1798 Tell me the area
- HDOJ Tell me the area 1798
- HDOJ—1798 Tell me the area
- 1071 The area
- hdu 1071 The area
- (hdu 1071)The area
- hdu 1071 The area
- hdu 1071 The Area
- HDU 1071 The area
- Hdu 1071 - The area
- HDU 1071 The area
- Windows 7平台搭建Android Cocos2d-x3.4开发环境 遇到问题解决方法
- 第二学期第三周 项目1
- 晶振为什么要加电容 需要配多大电容
- 实现对一个数据(int)指定位置0或置1
- PSNR的计算
- hdoj 1071 The area
- 一个配置比较全的log4j.xml文件,配置的正确性已在项目中验证。
- 网段划分
- 将一句话的单词进行倒置,标点符号不倒换。比如一句话:“i love you.”倒换后变为"you. love i"
- POJ 3311-Hie with the Pie(floyd+TSP 状压DP)
- A. Consecutive Factors
- O(1) 空间复杂度逆序栈和排序栈
- 如何高效的结算一个正整数中二进制表示1的个数
- iPhone开发——AFN使用总结