原题链接
在平面内给定的若干个点中,是否存在 4 个不同的点能够构成“平形四边行”。(即使是两个坐标完全相同的点,只要它们的下标不同,就认为这两个点是不同的。)
输入:
1<n<1e5,-1000<x<1000,-1000<y<1000
分析:
若四个点能构成一个平行四边形,则对角线的中点重合。所以要判断两对点是否可以组成平行四边形,只要看中点是否相同即可。
由x、y的范围,可将medX=x[i]+x[j]+2000,medY=y[i]+y[j]+2000作为中点的坐标,且中点的可能性在40004000以内。
故暴力枚举每对点,求中点,必然可以在4000
4000的复杂度内求的一对点的中点相同。
这种思想实际上类似于桶排序。

#include <bits/stdc++.h>
using namespace std;const int maxv=101000;
const int mod=998244353;
const int maxNum=0x7ffffff-10;
const double eps=1e-12;
const double PI=3.1415926535;
typedef long long LL;int x[maxv],y[maxv];
pair<int,int> vis[4100][4100];
int main(){int n;scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d %d",&x[i],&y[i]);for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++){int medX=x[i]+x[j]+2000,medY=y[i]+y[j]+2000;if(vis[medX][medY].first==i||vis[medX][medY].first==j||vis[medX][medY].second==i||vis[medX][medY].second==j)continue;if(vis[medX][medY].first){printf("YES\n%d %d %d %d",i,j,vis[medX][medY].first,vis[medX][medY].second);return 0;}vis[medX][medY]=make_pair(i,j);}}printf("NO");return 0;
}

关于平行四边形判断问题相关推荐

  1. LightOJ 1058 平行四边形的判断定理

    题目大意:给你n个点,求这n个点最多能组成多少个平行四边形. 题目思路:这道题卡时间,而且卡内存.你要尽可能的想办法优化. 平行四边形的判定定理: 两组对边分别平行的四边形是平行四边形(定义判定法): ...

  2. 类和对象总结及用法 计算点到点距离 线与线的关系 计算三角形平行四边形面积周长 判断形状

    1.类和对象简介 类和对象的关系:类是对象的抽象,而对象是类的特例,即类的具体表现形式. 类和对象的区别:类是对象的模板,类是抽象的不占用内存,对象是具体的,占用储存空间. 类中主要包括数据和成员函数 ...

  3. 判断小数是否相等_四年级上册数学填空+计算+判断易错题整理练习,收藏练一练!...

    四年级数学易错题练习 一.填空题 1.1.25×0.8表示(              ). 2.去掉0.25的小数点,就是把这个数扩大(      ):把50.4的小数点向左移动两位,就是把它缩小到 ...

  4. nyoj1228矩形判断

    描述 给出平面上4条线段,判断这4条线段是否恰好围成一个面积大于0的矩形. 输入 输入第一行是一个整数T(1<=T<=100),代表测试数据的数量. 每组数据包含4行,每行包含4个整数x1 ...

  5. c语言 判断一个图是否全连通_C语言:程序运行流程图与顺序结构语句

    程序运行流程图 流程图是描述问题处理步骤的一种常用图形工具,它是由一些图框和流程线组成的.流程图描述问题的处理步骤,形象直观,便于阅读.画流程图时必须按照功能选用相应的流程图符号,常用的流程图符号如下 ...

  6. python 判断点在随机多边形内_初中数学必须掌握的28个考点及60个易错点,收藏起来慢慢看!...

    中学大课堂初中各科学习必备(海量学习资源)关注 来源:初中生学习(ID:czsxuexige) 初中的学习不同于小学,在初中数学学习中,由于数学知识点难度的提升,更为看中的是孩子们的数学逻辑思维能力, ...

  7. 判断两线段是否相交——快速排斥与跨立实验

    如何判断两条线段是否相交呢?如果是我们去解决这个问题,用眼睛很容易就看出来了,但是如果用计算机来解决这个问题,该怎么办呢?下面介绍两个方法,这两个方法结合起来就能完美解决这个问题了. 一.快速排斥 对 ...

  8. 判断小数是否相等_五年级上册数学综合练习题(填空、判断、选择、文字题),覆盖全册知识点!...

    五年级上册判断题练习 1.整数乘法的运算定律对小数乘法同样适用 .(   ) 2.小数不一定比整数小.(   ) 3.两个小数相除 ,如果商大于被除数 ,那么除数一定大于.(   ) 4.两个数相除 ...

  9. 三角形已知边长求高公式_五年级数学:“长方形、正方形、三角形、平行四边形、梯形” 知识重点、难点全解析,附习题!...

    张老师 - 5年级(多品小学教育) 里辛镇中心小学谭老师和冰溪镇县后山小学谭老师需要的这份学习资料现在分享. 本资料已制作电子版 下载码是:5odc7n2i 多边形的面积知识点 1公式 长方形:周长= ...

最新文章

  1. Java项目:学生信息管理系统(java+SSM+jsp+mysql+maven)
  2. java中的权限修饰符_Java的权限修饰符的区别和用法总结
  3. 记一次Python与C#的AES加密对接
  4. 快速排序 C++代码实现及其算法思想及时间复杂度分析及优化 恋上数据结构笔记
  5. [剑指offer]面试题31:连续子数组的最大和
  6. equals 和 hashCode 到底有什么联系?一文告诉你
  7. 无人承运平台系统流程图
  8. zookeeper入门综合概要介绍
  9. UVA11082 行列模型
  10. 【2019杭电多校第七场1006=HDU6651】Final Exam(思维转换)
  11. 外卖侠使用教程【干货】
  12. 字节跳动笔试难题 扑克牌的移动
  13. 在64位win10中开启64位ie浏览器的方法(IE11)
  14. 获得《软件方法》代金券的同学列表-漏了麻烦告知
  15. 安卓巴士精选Android开发教程
  16. 云计算具有哪些特点,主要分为哪几大类型?
  17. 如何用帮助中心自助服务页面提高客户使用体验
  18. 启动AndroidStudio报错Missing essential plugin:org.jetbrains.android Please reinstall Android Studio...
  19. linux下阅读MHT文件
  20. 动态八卦图html,HTML绘制太极八卦图

热门文章

  1. 面试必问 K8S 的经典题目,来看看你会几个?
  2. typora字体设置颜色的解决方案
  3. Weakly Supervised Semantic Segmentation list
  4. 无需App!中国移动5G消息数字人民币钱包正式上线
  5. vue-项目使用过程中遇到的一些问题
  6. linux-锁屏时间设置
  7. python读书心得体会_Python学习心得体会
  8. 人工智能学期心得体会
  9. alisoft 开放旺旺SDK,我也来凑合一下
  10. Dede URL优化拼音命名