NYOJ 3 多邊形重心問題

2021-06-26 22:01:56 字數 1229 閱讀 3185

int abs(int i);                   // 處理int型別的取絕對值

double fabs(double i); //處理double型別的取絕對值

float fabsf(float i);           /處理float型別的取絕對值

時間限制:3000 ms  |  記憶體限制:65535 kb

難度:5

描述在某個多邊形上,取n個點,這n個點順序給出,按照給出順序將相鄰的點用直線連線, (第乙個和最後乙個連線),所有線段不和其他線段相交,但是可以重合,可得到乙個多邊形或一條線段或乙個多邊形和乙個線段的連線後的圖形;

如果是一條線段,我們定義面積為0,重心座標為(0,0).現在求給出的點集組成的圖形的面積和重心橫縱座標的和;

輸入第一行有乙個整數0

輸出輸出每個多邊形的面積、重心橫縱座標的和,小數點後保留三位;

樣例輸入

3

30 1

0 20 3

31 1

0 00 1

41 1

0 00 0.5

0 1

樣例輸出

0.000 0.000

0.500 1.000

0.500 1.000

**:

#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define max(a,b) a>b?a:b

#define min(a,b) a>b?b:a

#define mem(a,b) memset(a,b,sizeof(a))

int dir[4][2]= ,,,};

const double pi = acos(-1.0);

const double eps = 1e-10;

struct point

;//叉積求面積

double area(const point p0,const point p1,const point p2)

int main()

if(fabs(suma) <= eps)

printf("%.3lf %.3lf\n",fabs(suma),(sumx+sumy)/suma/3.0);

}return 0;

}

NYOJ 3 多邊形重心問題

題目描述 在某個多邊形上,取n個點,這n個點順序給出,按照給出順序將相鄰的點用直線連線,第乙個和最後乙個連線 所有線段不和其他線段相交,但是可以重合,可得到乙個多邊形或一條線段或乙個多邊形和乙個線段的連線後的圖形 如果是一條線段,我們定義面積為0,重心座標為 0,0 現在求給出的點集組成的圖形的面積...

nyoj 3 多邊形重心問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 5 描述 在某個多邊形上,取n個點,這n個點順序給出,按照給出順序將相鄰的點用直線連線,第乙個和最後乙個連線 所有線段不和其他線段相交,但是可以重合,可得到乙個多邊形或一條線段或乙個多邊形和乙個線段的連線後的圖形 如果是一條線段,我們定義...

NYOJ 3 多邊形重心

時間限制 3000 ms 記憶體限制 65535 kb 難度 5 描述在某個多邊形上,取n個點,這n個點順序給出,按照給出順序將相鄰的點用直線連線,第乙個和最後乙個連線 所有線段不和其他線段相交,但是可以重合,可得到乙個多邊形或一條線段或乙個多邊形和乙個線段的連線後的圖形 如果是一條線段,我們定義面...