hdu1071-The area 积分求解与x轴形成的面积
来源:互联网 发布:论大数据的十大局限 编辑:程序博客网 时间:2024/05/29 02:22
The area
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10810 Accepted Submission(s): 7620
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.69题意:求阴影部分的面积利用高中的积分知识可得:抛物线得到的面积减去直线得到的面积,就是阴影部分的面积求一般方程如下求抛物线方程:已知三点求解抛物线方程:x1^2a+x1b+c=y1已知直线求方程:
x2^2a+x2b+c=y2
x3^2a+x3b+c=y3
D=x1^2*x2-x1^2*x3-x2^2*x1+x2^2*x3+x3^2*x1-x3^2*x2
D1=y1*x2-y1*x3-y2*x1+y2*x3+y3*x1-y3*x2
D2=x1^2*y2-x1^2*y3-x2^2*y1+x2^2*y3+x3^2*y1-x3^2*y2
D3=x1^2*y3*x2-x1^2*y2*x3-x2^2*y3*x1+x2^2*y1*x3+x3^2*y2*x1-x3^2*y1*x2
A=D1/D
B=D2/D
C=D3/DA=(Y1-Y2)/(X1-X2) B=Y1-A*X1得到参数后直接求解面积就可以了代码如下:#include<cstdio>#include<iostream>#include<cmath>using namespace std;double x1,x2,x3;double y,y2,y3;double a,b,c;double fun(double p,double q){double A=1.0*a*p*p*p/3+1.0*b*p*p/2+c*p;double B=1.0*a*q*q*q/3+1.0*b*q*q/2+c*q;return B-A;}void init(){double d=x1*x1*x2-x1*x1*x3-x2*x2*x1+x2*x2*x3+x3*x3*x1-x3*x3*x2;double d1=y*x2-y*x3-y2*x1+y2*x3+y3*x1-y3*x2;double d2=x1*x1*y2-x1*x1*y3-x2*x2*y+x2*x2*y3+x3*x3*y-x3*x3*y2;double d3=x1*x1*y3*x2-x1*x1*y2*x3-x2*x2*y3*x1+x2*x2*y*x3+x3*x3*y2*x1-x3*x3*y*x2;a=d1/d;b=d2/d;c=d3/d;//printf("a=%.2f\nb=%.2f\nc=%.2f\n",a,b,c);}int main(){int t;scanf("%d",&t);while(t--){scanf("%lf%lf",&x1,&y);scanf("%lf%lf",&x2,&y2);scanf("%lf%lf",&x3,&y3);init();double b1=(y2-y3)/(x2-x3);double c1=y2-b1*x2;//printf("b1=%.2f\nc1=%.2f\n",b1,c1);b=b-b1; c=c-c1;//printf("b=%.2f\nc=%.2f\n",b,c);printf("%.2f\n",fun(x2,x3)); } return 0; }
点击打开链接http://acm.hdu.edu.cn/showproblem.php?pid=1071
阅读全文
1 0
- hdu1071-The area 积分求解与x轴形成的面积
- The area (hdu1071)积分求面积
- HDU1071 The area 【积分】
- hdu1071 (积分求面积)
- hdu1071(积分求面积)
- HDU 1071 The area && 抛物线与直线积分面积
- Hdu1071 The area
- hdu1071数学题 The area
- hdu1071 The area
- HDU1071 The area
- 1071 The area 求面积(积分)
- hdu1071(积分求直线和抛物线构成的面积)
- hdu1071——The area
- 数学积分求面积的 HDU1071The area
- hdu 1071 The area(定积分求面积)
- hdu 1071 the area 用积分求面积
- hdu 1071 The area 高数积分求面积~~~~小水题~~
- HDU 1071 The area (定积分求面积)
- CSS-overflow的含义
- Java堆和栈的区别和联系
- 验证数字的正则表达式集(转载)
- Java中在特定区间产生随机数 (2009-03-26 13:31:49)转载▼ 标签: 杂谈 生成指定范围内的随机数 这个是最常用的技术之一。程序员希望通过随机数的方式来处理众多的业务逻辑,测试
- 在ubuntu14.04下安装和配置shadowsockets以及安装和配置chromium
- hdu1071-The area 积分求解与x轴形成的面积
- bzoj 1037: [ZJOI2008]生日聚会Party
- SqlServer 大量数据热汇总优化整理
- 前端学习笔记3-1 javascript
- WebJars 记录
- (1) spring去掉默认绑定的common-logging.jar
- Chrome Extension实战:页面JS脚本替换
- Java网络编程(二)-基于http协议的网络编程
- php7那点事