fzu 2231 根據座標面上的點找平行四邊形個數

2021-07-22 12:53:08 字數 685 閱讀 8062

在乙個平面內給定n個點,任意三個點不在同一條直線上,用這些點可以構成多少個平行四邊形?乙個點可以同時屬於多個平行四邊形。

多組資料(<=10),處理到eof。

每組資料第一行乙個整數n(4<=n<=500)。接下來n行每行兩個整數xi,yi(0<=xi,yi<=1e9),表示每個點的座標。

每組資料輸出乙個整數,表示用這些點能構成多少個平行四邊形。

40 11 01 12 0 1

福州大學第十三屆程式設計競賽

思路比較巧妙,利用平行四邊形的對角線相互平分的性質

先計算每兩個點的中點,如果中點相同則這兩條線可以構成平行四邊形,找出所有中點相同的個數,然後中點數num,可以構成的平行四邊形就為num*(num-1)/2

#include#include#include#include#include#include#include#define inf 0x3f3f3f3f

#define ll long long

using namespace std;

struct node

q[510];

vectorv;

bool cmp(node a,node b)

sort(v.begin(),v.end(),cmp);

int num=1;

int sum=0;

for(int i=0;i

fzu 2231 平行四邊形數

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

FZU 2231 平行四邊形數

fzu 2231 平行四邊形數 題目大意 給你n個點,求能夠組成多少個平行四邊形?首先想到的是判斷兩對邊平行且相等,但這樣的話得列舉四個頂點,或者把點轉換成邊然後再列舉所有邊相等的麻煩,還不好處理。這時我們就得想到另乙個性質,對角線互相平分,這樣我們只需列舉對角線,轉換一下就是中點。因為給出的點不存...

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

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