题目链接:点击查看

题目大意:二维平面坐标系上给出 nnn 个点,现在需要求出四个点,满足四个点可以组成可退化的平行四边形

题目分析:因为坐标的范围很小,所以瞬间想到了上周刷到的一道题目的模型:
CodeForces - 1501C

然后就在纠结平行四边形边长长度的路上走远了

赛后一看题解恍然大悟,只要去寻找两对点 (a,b),(c,d)(a,b),(c,d)(a,b),(c,d) 满足中点是同一个点就可以了

妙啊

因为鸽巢原理,二维平面坐标系上最多有 4e64e64e6 个点,所以每 4e64e64e6 个点对,至少会有两个点对满足中点相等

同时又因为结论,假如有四组点对,满足中点相同,那么一定是可以构造出 (a,b),(c,d)(a,b),(c,d)(a,b),(c,d) 四个点互不相同的答案

所以时间复杂度就是 O(min(n2,4∗4e6))O(min(n^2,4*4e6))O(min(n2,4∗4e6))
代码:

// Problem: ★★平形四边行★★
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/16520/I
// Memory Limit: 524288 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)// #pragma GCC optimize(2)
// #pragma GCC optimize("Ofast","inline","-ffast-math")
// #pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<stack>
#include<climits>
#include<queue>
#include<map>
#include<set>
#include<sstream>
#include<cassert>
#include<bitset>
#include<list>
#include<unordered_map>
#define lowbit(x) x&-x
using namespace std;
typedef long long LL;
typedef unsigned long long ull;
template<typename T>
inline void read(T &x)
{T f=1;x=0;char ch=getchar();while(0==isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}while(0!=isdigit(ch)) x=(x<<1)+(x<<3)+ch-'0',ch=getchar();x*=f;
}
template<typename T>
inline void write(T x)
{if(x<0){x=~(x-1);putchar('-');}if(x>9)write(x/10);putchar(x%10+'0');
}
const int inf=0x3f3f3f3f;
const int N=1e6+100;
int x[N],y[N];
struct Node {int x,y;Node() {}Node(int x,int y):x(x),y(y) {}bool operator!=(const Node& t) {return x!=t.x&&x!=t.y&&y!=t.x&&y!=t.y;}bool operator<(const Node& t) const {if(x!=t.x) {return x<t.x;}return y<t.y;}
};
map<pair<int,int>,Node>mp;
int main()
{#ifndef ONLINE_JUDGE
//  freopen("data.in.txt","r",stdin);
//  freopen("data.out.txt","w",stdout);
#endif
//  ios::sync_with_stdio(false);int n;read(n);for(int i=1;i<=n;i++) {read(x[i]),read(y[i]);}for(int i=1;i<=n;i++) {for(int j=i+1;j<=n;j++) {int xx=x[i]+x[j];int yy=y[i]+y[j];if(!mp.count({xx,yy})) {mp[{xx,yy}]=Node(i,j);} else if(mp[{xx,yy}]!=Node(i,j)) {puts("YES");cout<<i<<' '<<j<<' '<<mp[{xx,yy}].x<<' '<<mp[{xx,yy}].y<<endl;return 0;}}}puts("NO");return 0;
}

兰州大学第一届『飞马杯』程序设计竞赛 - ★★平形四边行★★(鸽巢原理+暴力)相关推荐

  1. 兰州大学第一届『飞马杯』程序设计竞赛(同步赛),签到题ACFHJ

    序 题号 标题 通过率 我的状态 A ★★比赛新机制★★ 309/1537 通过 (找规律+前缀和维护) (longlong记得开1e18,我1e15WA了一个多小时) B ★★体育课排队★★ 1/1 ...

  2. 兰州大学第一届『飞马杯』程序设计竞赛 - ★★飞马祝福语★★(动态dp)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的字符串 sss ,现在有 mmm 次操作,每次操作可以修改 [l,r][l,r][l,r] 内的字符为 chchch,问每次修改之后的字符串内含 ...

  3. 兰州大学第一届『飞马杯』程序设计竞赛 - ★★体育课排队★★(二分+最大流)

    题目链接:点击查看 题目大意:给出 nnn 个人,再给出 nnn 个指定位置,每个人每秒钟可以向上下左右四个方向移动一个单位,问最少需要多长时间,才能使所有人都到达指定位置 题目分析:数据比较小,可以 ...

  4. 第一届『Citric杯』NOIP提高组模拟赛 题解

    [官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...

  5. 冠军出炉!2022『猛犸杯』国际组学数据创新大赛圆满收官

    2022 MICOS 2月26日,由中国生物信息学学会(筹).广东省科技基础条件平台中心指导,深圳国家基因库.鹏城实验室.深圳华大生命科学研究院主办的2022『猛犸杯』国际组学数据创新大赛(2022 ...

  6. 华为杯大学生计算机软件大赛,关于举办2018年西安电子科技大学程序设计网络赛暨第十六届“华为杯”大学生程序设计竞赛的通知...

    各学院: 程序设计是大学生运用计算机充分展示自己分析问题和解决问题能力的一个重要途径,对于培养大学生实践能力.团队意识.创新意识.顽强意志和综合素质具有显著作用和效果.为了推动这项创新性素质教育活动的 ...

  7. 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛(同步赛)解题报告

    第八届"图灵杯"NEUQ-ACM程序设计竞赛个人赛(同步赛) 题目总结 A题 切蛋糕 题目信息 解题思路 如果我们将 1/k展开到二进制的形式,那么就可以计算出 需要 多少块1/( ...

  8. 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛题解

    第八届"图灵杯"NEUQ-ACM程序设计竞赛个人赛题解 先抱怨一下,这场比赛的题锅太多了,而且正赶上状态不好,Ac 1/12就离谱.. H 数羊 给定n,m(1≤n≤109,0≤m ...

  9. 肇庆学院"菜鸟杯"程序设计竞赛2019 A.解锁专家

    肇庆学院"菜鸟杯"程序设计竞赛2019 A.解锁专家 题目描述 阿炳是一个精通文理的小机灵鬼,它是一个解锁专家,也是一个诗人.一天,阿炳受邀前往黄台甫马哈那坤弃他哇劳狄希阿由他亚马哈底陆浦欧叻辣塔尼布 ...

最新文章

  1. Facebook曝至今最严重安全漏洞,超过5000万用户受影响
  2. field module的on input和on request区别
  3. matlab 提取数列里非零_什么!科研交流免费教Matlab?
  4. doxygen注释规范示例(C++)
  5. POJ--2104 K-th Number (主席树模版题)
  6. c语言考试题及答案 大一,大一C语言期末考试试题
  7. ASP.NET Core如何限制请求频率
  8. [蓝桥杯2018初赛]字母阵列-单向dfs
  9. 依存句法分析的任务以及形式化定义
  10. 我会铭记这一天:2016年10月25日
  11. IntelliJ IDEA 2019.1.1 预览版发布,以及对旧版本的更新
  12. C++编译期间字节序判断
  13. python接口自动化测试(五)-其它(认证代理超时配置)
  14. 这是来博客园的第二篇日志
  15. python通过QQ邮箱或163邮箱发送邮件(可带附件)
  16. 有趣python小程序系列之一
  17. TWINSNOW - Snowflakes 哈希
  18. VMwareV8.0.2 -591240 正式版及有效序列号
  19. c 管理信息系统mysql,输入数据并输出信息的系统都称为()。A、信息系统B、数据库系统C、事务处理系统D、管理信息系统...
  20. 对幕布的几条改进建议

热门文章

  1. java程序编写九九乘法表_用面向对象的方法编写的九九乘法表java代码的编写
  2. linux 的内核参数优化,linux 内核参数优化
  3. 基于RBAC的设计思路
  4. 概述类的加载器及类加载过程
  5. Log4j的layout配置
  6. HashSet存储自定义类型元素
  7. 方法引用_通过对象名引用成员方法
  8. 新版本springboot整合@transactional注解
  9. Solr-4.10.2安装
  10. dhcp是哪一层的协议_OSI各个分层分别负责哪些功能?有哪些主要协议?涉及到哪些设备?...