FZU 2231 平行四边形数
FZU - 2231 平行四边形数
题目大意:给你n个点,求能够组成多少个平行四边形?
首先想到的是判断两对边平行且相等,但这样的话得枚举四个顶点,或者把点转换成边然后再枚举所有边相等的麻烦,还不好处理。这时我们就得想到另一个性质,对角线互相平分,这样我们只需枚举对角线,转换一下就是中点。因为给出的点不存在三点共线的,那么我们处理每两个点的中点,如果中点相等,那么说明这两条线互相平分,也就可以组成平行四边形。
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=;
struct Node{
double x,y;
}p[N],zp[N*N];
bool cmp(const Node &n1,const Node &n2){
return n1.x==n2.x ? n1.y<n2.y : n1.x<n2.x;
}
int main()
{
int n,m;
while(~scanf("%d",&n))
{
for(int i=;i<n;i++)
scanf("%lf%lf",&p[i].x,&p[i].y);
m=;
for(int i=;i<n;i++)
for(int j=i+;j<n;j++)
{
zp[m].x=(p[i].x+p[j].x)/;
zp[m++].y=(p[i].y+p[j].y)/;
}
sort(zp,zp+m,cmp);
int ans=;
zp[m].x=-,zp[m].y=-;
for(int i=,j=;i<=m;i++)
{
if(i&&(zp[i].x!=zp[i-].x||zp[i].y!=zp[j].y))
{
ans+=(i-j)*(i-j-)/;
j=i;
}//中点相等的边两两可以组成一个平行四边形
}
printf("%d\n",ans);
}
return ;
}
爱的四边形平平行
FZU 2231 平行四边形数的更多相关文章
- [ACM] FZU 2087 统计数边 (有多少边至少存在一个最小生成树里面)
Problem Description 在图论中,树:随意两个顶点间有且仅仅有一条路径的图. 生成树:包括了图中全部顶点的一种树. 最小生成树:对于连通的带权图(连通网)G,其生成树也是带权的. 生成 ...
- Number of Parallelograms(求平行四边形个数)
Number of Parallelograms time limit per test 4 seconds memory limit per test 256 megabytes input sta ...
- acm几何
fzu 2231,N个点求构成的平行四边行个数. 题意简重点在优化上 #include <cstdio> #include <iostream> #include <cs ...
- DP专题
最全DP总结 https://blog.csdn.net/cc_again/article/details/25866971 ACM题集 https://blog.csdn.net/liuqiyao_ ...
- [fzu 2282]置换不动点大于等于k的排列数
题目链接:http://acm.fzu.edu.cn/problem.php?pid=2282 编号1~n的置换,不动点个数大于等于k的方案数. 参考百度百科错排公式,可以知道长度为n,每个数都不在自 ...
- FZU みねちゃんの修罗场(从一堆出现三次的数中找出出现两次的数)
みねちゃんの修罗场 Time Limit: 5000 mSec Memory Limit: 1024 KB Description みねちゃん是个成绩优秀大学二年级学生,本来是和像自己妹妹一般 ...
- FZU 2098 刻苦的小芳(卡特兰数,动态规划)
Problem 2098 刻苦的小芳 Accept: 42 Submit: 70 Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Descr ...
- FZU 1064 教授的测试(卡特兰数,递归)
Problem 1064 教授的测试 Accept: 149 Submit: 364 Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Des ...
- [fzu 2271]不改变任意两点最短路至多删的边数
题目链接:http://acm.fzu.edu.cn/problem.php?pid=2271 题目中说每条边的边权都是[1,10]之间的整数,这个条件非常关键!以后一定要好好读题啊…… 做10次循环 ...
随机推荐
- MySQL-复杂查询及条件-起别名-多表查询-04
目录 基本查询语句及方法 测试数据创建 创建数据库与表 插入表记录数据 数据展示 常见结果排版 另一种结果排版 \G 简单查询语句的书写与执行顺序 查询语句书写 执行顺序 科普-- 起别名 写法 可以 ...
- 使用iview ui库 [vue/no-parsing-error] Parsing error: x-invalid-end-tag报错
打开设置,搜索“vetur.validation.template”,设置完毕之后记得重启vscode 如果不行请使用下边方法 一. 问题日志 ✘ https://google.com/#q=vue% ...
- 一致性算法—Paxos、Raft、ZAB
一致性算法—Paxos.Raft.ZAB 2019年04月21日 20:35:09 bulingma 阅读数 64更多 分类专栏: 分布式概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY ...
- vue之scoped穿透
vue之scoped穿透 问题:在页面中,需要了第三方插件的样式,又不想取消scoped,防止造成样式污染 方法:>>> 代码: #tab >>> .ivu-tab ...
- 简单的todolist的demo
放上代码: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF ...
- JSP中的普通路径写法
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://&qu ...
- python:常用模块 知识整理
time模块 time.time() # 时间戳:1487130156.419527 time.strftime("%Y-%m-%d %X") #格式化的时间字符串:'2017-0 ...
- Swift 函数式数据结构 - 链表
本文将使用Swift实现一个标准链表,在实现的过程中,遵守函数式编程的规则,无副作用,可以看到和C语言的实现还是有较大的差异. 预备知识 enum 的各种用法 swift的基本的模式匹配( patte ...
- 4、nfs(存储服务器)
1.NFS基本概述 NFS是Network File System的缩写及网络文件系统.NFS的主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录. 通常中小企业首选NFS作为集群架构的存储 ...
- jQuery获取表单全部数据
iQuery如何获取表单的全部数据,用于ajax提交 var formData = {}; var t = $('#Form').serializeArray(); $.each(t, functio ...