nyoj 3 多邊形重心問題 幾何

2021-07-08 15:03:28 字數 1019 閱讀 2375

時間限制:

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

分析:多邊形面積公積公式:s=(pp[i%n].x*pp[i-1].y-pp[i%n].y*pp[i-1].x。。。。)/2;

**:#include#include#include#include#include#define mem(x,y) memset(x,y,sizeof(x))

#define si(x) scanf("%d",&x)

#define o_o(x) while(x--)

using namespace std;

const int maxn=10010;

const double inf=1e-8;

struct node

pp[maxn];

int main()

{ int t;

si(t);

o_o(t)

{int n;

si(n);

double sum=0.0,temp=0.0,x=0.0,y=0.0;

for(int i=0;i

NYOJ 3 多邊形重心問題

int abs int i 處理int型別的取絕對值 double fabs double i 處理double型別的取絕對值 float fabsf float i 處理float型別的取絕對值 時間限制 3000 ms 記憶體限制 65535 kb 難度 5 描述在某個多邊形上,取n個點,這n個...

NYOJ 3 多邊形重心問題

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

nyoj 3 多邊形重心問題

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