hud1071 The area
来源:互联网 发布:besiege mac版 编辑:程序博客网 时间:2024/04/29 17:44
原题链接:click here
题目大意:一个二次曲线与直线相交,交点已知。求它们围成的封闭区域的面积。
思路:利用交点求出曲线和和直线参数,得到曲线和直线方程,再利用定积分求面积。
设二次曲线方程为:y=a*X^2+b*x+c;(1)
x1=-b/2a;(2)(对称轴方程)
所以b=-2a*x1;(3)
将p1(x1,y1),p2(x2,y2)代入(1)式后再把(2)式代入整理可得:
a=(y2-y1)/(x2-x1)^2;(4)
c=y1-(a*x1*x1+b*x1);(5)
由(4)(3)(5)可知得a,b,c从而确定抛物线方程。
从p2到p3对y=a*x*x+b*x+c积分,再减去直线从p2到p3积分(为一个梯形面积,直接用梯形面积公式可简化运算)就是所求阴影部分面积。
代码如下:
#include<stdio.h>int main(){ double x1,x2,x3,y1,y2,y3,a,b,c,s1,s2,s3,s; int t; while(scanf("%d",&t)!=EOF) { while(t--) { scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3); /*计算二次曲线的三个系数*/ a=(y2-y1)/((x2-x1)*(x2-x1)); b=-2*a*x1; c=y1-(a*x1*x1+b*x1); s1=(y2+y3)*(x3-x2)/2.0;//直线从p2到p3的积分正好是一个梯形面积,直接用公式计算 s2=(a/3.0)*x2*x2*x2+(b/2.0)*x2*x2+c*x2;//定积分求面积 s3=(a/3.0)*x3*x3*x3+(b/2.0)*x3*x3+c*x3; s=s3-s2-s1; printf("%.2lf\n",s); } } return 0;}
- hud1071 The area
- The area
- The area
- The area
- The area
- The area
- The area
- The area
- The area
- The area
- The area
- 1071 The area
- hdoj1071 The area
- hdu 1071 The area
- (hdu 1071)The area
- hdu 1071 The area
- hdu 1071 The Area
- HDU 1071 The area
- HTML超出文本多行截取代码
- OceanBase里面的rowkey是什么概念,是由哪些要素构成的?
- 软件设计参考
- hdu 1392凸包周长
- OneDayOneEx: 3 音乐播放器
- hud1071 The area
- HDU 2517 棋盘分割
- IIS Server and Spring.NET object instantiation failed
- Linux更新源列表
- HTML表单综合实例
- linux真机玩--mini2440
- 7月份浏览器份额:IE仍最受欢迎 Chrome成最大赢家
- 设置 Linux 的 LD_LIBRARY_PATH 变量
- IOS中Json解析的四种方法