HDU 1071 - The area

求曲线和直线围成的面积

求表达式,求积分

 1 #include <iostream>
 2 using namespace std;
 3 double x[4],y[4];
 4 int t;
 5 double k,m;//fx1: y=kx+m
 6 double a,b,c;//fx2: y=a(x-b)^2+c
 7 void getfx1()
 8 {
 9     k=(y[3]-y[2])/(x[3]-x[2]);
10     m=y[2]-k*x[2];
11 }
12 void getfx2()
13 {
14     a=(y[2]-y[1])/(x[1]-x[2])/(x[1]-x[2]);
15     b=x[1];
16     c=y[1];
17 }
18 double getarea()
19 {
20     double f1=1.0/3*a*x[3]*x[3]*x[3]-(2*a*b+k)/2*x[3]*x[3]+(a*b*b+c-m)*x[3];
21     double f2=1.0/3*a*x[2]*x[2]*x[2]-(2*a*b+k)/2*x[2]*x[2]+(a*b*b+c-m)*x[2];
22     return f1-f2;
23 }
24 int main()
25 {
26     scanf("%d",&t);
27     while(t--)
28     {
29         for(int i=1;i<=3;i++) scanf("%lf%lf",&x[i],&y[i]);
30         getfx1();
31         getfx2();
32         printf("%.2lf\n",getarea());
33     }
34 } 
时间: 2024-10-05 22:19:23

HDU 1071 - The area的相关文章

hdu 1071 The area 高斯消元求二次函数+辛普森积分

构造系数矩阵,高斯消元求解二次函数,然后两点式求直线函数,带入辛普森积分法无脑AC... #include<cstdio> #include<queue> #include<algorithm> #include<cstring> #include<vector> #include<cmath> using namespace std; struct node { double x,y; }p[4]; double g[10][10]

hdu 1071 - The area(解题报告)

The area Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 8715    Accepted Submission(s): 6115 Problem Description Ignatius bought a land last week, but he didn't know the area of the land becau

HDU 1071 The area ——微积分

[题目分析] 求二次函数和一次函数围成的面积. 先解方程求出一次函数和二次函数. 然后积分. 现在还是不会积分. [代码] #include <cstdio> #include <cstring> #include <cstdlib> //#include <cmath> #include <set> #include <map> #include <string> #include <algorithm> #

HDU 1071 The area (数学定积分)

题意:求阴影部分面积. 析:没什么可说的,就是一个普通的定积分. 代码如下: #include <cstdio> #include <iostream> using namespace std; int main(){ int T; cin >> T; double x0, y0, x1, y1, x2, y2, k, b, a, c, h, s; while(T--){ scanf("%lf %lf %lf %lf %lf %lf",&x0

hdu 1071 The area【定积分】

用顶点式\( a(x-h)^2+k=y \)解方程,转化为\(ax^2+bx+c=y \)的形式,然后对二次函数求定积分\( \frac{ax^3}{3}+\frac{bx^2}{2}+cx+C \)即可.(其实我不知道那个C是干什么用的反正这里不用加. #include<iostream> #include<cstdio> using namespace std; int T; double x1,x2,x3,y1,y2,y3,a,b,c,h,k; double f(double

HDU 1071 微积分

The area Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7611    Accepted Submission(s): 5332 Problem Description Ignatius bought a land last week, but he didn't know the area of the land becaus

HDU ACM 1071 The area 定积分计算

分析: 1.求抛物线方程F(x)=a*x^2+b*x+c: 2.求直线方程f(x)=k*x+b. 3.利用定积分计算F(x)-f(x)在x2到x3之间的面积. #include<iostream> using namespace std; double fun(double a,double b,double c,double d,double k,double x) { return a*x*x*x/3.0-(2.0*a*b+k)*x*x/2.0+(a*b*b+c-d)*x; } int m

hdoj 1071 The area

The area Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 8388    Accepted Submission(s): 5888 Problem Description Ignatius bought a land last week, but he didn't know the area of the land becaus

HDU 2125 Local area network

简单DP,N×M的网格其中有一条边坏掉了,问从起点到终点的放法数 有两种方法,一种是DP很好理解 1 //#define LOCAL 2 #include <cstdio> 3 #include <cstring> 4 5 int dp[42][42]; 6 bool flag[42][42]; 7 8 int main(void) 9 { 10 #ifdef LOCAL 11 freopen("2125in.txt", "r", stdin