平行四边形数
来源:互联网 发布:js超过一行显示省略号 编辑:程序博客网 时间:2024/05/01 08:22
在一个平面内给定n个点,任意三个点不在同一条直线上,用这些点可以构成多少个平行四边形?一个点可以同时属于多个平行四边形。
多组数据(<=10),处理到EOF。
每组数据第一行一个整数n(4<=n<=500)。接下来n行每行两个整数xi,yi(0<=xi,yi<=1e9),表示每个点的坐标。
每组数据输出一个整数,表示用这些点能构成多少个平行四边形。
40 11 01 12 0
1
平行四边行性质对角线平分。所以用这个性质来判断是否为平行四边形。
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct node{ int x,y;};bool cmp(node n,node m){ if(n.y==m.y) return n.x<m.x; return n.y<m.y;}int main(){ node std[1000],std1[250000]; int n,m,i,j,k,t; while(scanf("%d",&n)!=EOF) { for(i=0; i<n; i++) { scanf("%d %d",&std[i].x,&std[i].y); } for(i=0,k=0; i<n; i++) { for(j=i+1; j<n; j++) { std1[k].x=std[i].x+std[j].x; std1[k].y=std[i].y+std[j].y; k++; } } sort(std1,std1+k,cmp); int ans=1; node pe=std1[0]; int sum=0; for(i=1; i<k; i++) { if(std1[i].x==pe.x&&std1[i].y==pe.y) { ans++; } else { sum+=(ans-1)*ans/2; pe=std1[i]; ans=1; } } printf("%d\n",sum); } return 0;}
阅读全文
0 0
- 平行四边形数
- 平行四边形数
- 平行四边形数
- 平行四边形数
- 平行四边形数
- 平行四边形数
- fzu 2231 平行四边形数
- 平行四边形数(fzoj_2231) 几何
- FZUOJ 2231 平行四边形数
- FZU 2231 平行四边形数
- FZU 2231 平行四边形数
- FZU 2231 平行四边形数
- Problem 2231 平行四边形数
- fzu-2231、 平行四边形数
- fzu2231平行四边形数
- Problem 2231 平行四边形数
- FZU Problem 2231 平行四边形数
- FZU2231 平行四边形数 计算几何
- Unity入门操作_鼠标寻路 _020
- LSTM 与 CTC loss (以及DP、HMM)
- 网易笔试题之数字反转(数学真的奇妙)
- Cpython支持的进程与线程
- PJ:细菌挥发性物质和光合信号激活低铁响应途径
- 平行四边形数
- Spring在eclipse里安装插件
- BZOJ 1426 概率/期望DP神题 手推概率DP
- c++暂停命令
- 【C/C++】联合union的用法和说明
- hdu 6166 Senior Pan(SPFA+二进制分组)
- 阿里校招笔试——给定一个字符串S和有效单词的字典D,请确定可以插入到S中的最小空格数,使得最终的字符串完全由D中的有效单词组成,并输出解。
- hdu 1208
- JS 四舍五入的toFixed()方法