FZU 2231 平行四邊形數

2022-03-16 17:20:12 字數 757 閱讀 7101

fzu - 2231   平行四邊形數

題目大意:給你n個點,求能夠組成多少個平行四邊形?

首先想到的是判斷兩對邊平行且相等,但這樣的話得列舉四個頂點,或者把點轉換成邊然後再列舉所有邊相等的麻煩,還不好處理。這時我們就得想到另乙個性質,對角線互相平分,這樣我們只需列舉對角線,轉換一下就是中點。因為給出的點不存在三點共線的,那麼我們處理每兩個點的中點,如果中點相等,那麼說明這兩條線互相平分,也就可以組成平行四邊形。

1 #include2 #include3

using

namespace

std;

4const

int n=520;5

struct

nodep[n],zp[n*n];

8bool cmp(const node &n1,const node &n2)

11int

main()

1225 sort(zp,zp+m,cmp);

26int ans=0

;27 zp[m].x=-1,zp[m].y=-1;28

for(int i=0,j=0;i<=m;i++)

29//

中點相等的邊兩兩可以組成乙個平行四邊形 35}

36 printf("

%d\n

",ans);37}

38return0;

39 }

愛的四邊形平平行

fzu 2231 平行四邊形數

題目 在乙個平面內給定n個點,任意三個點不在同一條直線上,用這些點可以構成多少個平行四邊形?乙個點可以同時屬於多個平行四邊形。input 多組資料 10 處理到eof。每組資料第一行乙個整數n 4 n 500 接下來n行每行兩個整數xi,yi 0 xi,yi 1e9 表示每個點的座標。output ...

FZU 2231 平行四邊形數(計算幾何)

problem description 在乙個平面內給定n個點,任意三個點不在同一條直線上,用這些點可以構成多少個平行四邊形?乙個點可以同時屬於多個平行四邊形。input 多組資料 10 處理到eof。每組資料第一行乙個整數n 4 n 500 接下來n行每行兩個整數xi,yi 0 xi,yi 1e9...

FZU2231 平行四邊形數 計算幾何

problem 2231 平行四邊形數 在乙個平面內給定n個點,任意三個點不在同一條直線上,用這些點可以構成多少個平行四邊形?乙個點可以同時屬於多個平行四邊形。多組資料 10 處理到eof。每組資料第一行乙個整數n 4 n 500 接下來n行每行兩個整數xi,yi 0 xi,yi 1e9 表示每個點...