程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> HDU 1071 The area (數學水題)

HDU 1071 The area (數學水題)

編輯:C++入門知識

The area

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


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 Z喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcmRlciBvZiBQMSwgUDIsIFAzLiBFYWNoIHBvaW50IGlzIGRlc2NyaWJlZCBieSB0d28gZmxvYXRpbmctcG9pbnQgbnVtYmVycyBYIGFuZCBZKDAuMDw9WCxZPD0xMDAwLjApLjxicj4KCgogCjxicj4KCk91dHB1dAoKRm9yIGVhY2ggdGVzdCBjYXNlLCB5b3Ugc2hvdWxkIG91dHB1dCB0aGUgYXJlYSBvZiB0aGUgbGFuZCwgdGhlIHJlc3VsdCBzaG91bGQgYmUgcm91bmRlZCB0byAyIGRlY2ltYWwgcGxhY2VzLjxicj4KCgogCjxicj4KClNhbXBsZSBJbnB1dAoKPHByZSBjbGFzcz0="brush:java;">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


題意:就是告訴圖中三點坐標,求面積。


#include 
#include 
#include 
#include 
#include 


typedef struct Point{
	double x,y;
}Point;

double a,b,c,k,d,s;
Point p[4];

double gao(double x){
	return (a/3.0*pow(x,3.0)+b/2.0*pow(x,2.0)+c*x-k/2*pow(x,2.0)-d*x);
}

int main(){

	//freopen("in.txt","r",stdin);
	int t,i;
	scanf("%d",&t);
	while(t--){
		for(i=1;i<=3;++i){
			scanf("%lf %lf",&p[i].x,&p[i].y);
		}
	
		a = (p[1].y-p[2].y)/(2*p[1].x*p[2].x-pow(p[2].x,2.0)-pow(p[1].x,2.0));
		b = -2*a*p[1].x;
		c = p[2].y+2*a*p[1].x*p[2].x-a*pow(p[2].x,2.0);
		k = (p[3].y-p[2].y)/(p[3].x-p[2].x);
		d = p[2].y-k*p[2].x;
		s = gao(p[3].x)-gao(p[2].x);
		printf("%0.2lf\n",s);
	}
	
    return 0;
}



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved