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 表示每個點...