[题解]Magic Line-计算几何(2019牛客多校第三场H题)
题目链接:https://ac.nowcoder.com/acm/contest/883/H
题意:
给你偶数个点的坐标,找出一条直线将这n个点分成数量相等的两部分
并在这条直线上取不同的两个点,表示这条直线
思路:
看见这题的第一反应是,先定一个相对这些点无限远的定点
然后取扫一遍,取一个其中一个点,找到一条能将这些点分成m个和m+1个点
最后将斜率微微倾斜,在直线上再取一点即可
最后疯狂WA,不知道是算法问题还是代码问题
听了大佬的讲解,发现自己真的蠢
最后的做法:
将这n个点按x坐标从小到大排序,x坐标相同时按y坐标从小到大排序
这样就能找到中间偏左的一个点p(x0,y0),取一条竖直直线x=x0
然后将这条竖直直线,以点p为中心逆时针旋转一点点
设答案两点a(x1,y2),b(x2,y2),令x1=x0-1,x2=x0+1,y1=y0+1000000,y2=y0-1000000 就可以实现
这样就能将这些点分为成m个和m+1个点
最后保持a点不动,将b点上移一个单位长度 y2=y2+1
就能使点p也落在直线下面,成功分成数量相等的两堆
再次感叹一下自己好捞qaq
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define e 990000000 struct point{
int x,y;
}p[]; bool cmp(point a,point b){
if(a.x==b.x)
return a.y<b.y;
return a.x<b.x;
} int main()
{
int n,m,t,x1,x2,y1,y2;
cin>>t;
while(t--){
cin>>n;
for(int i=;i<n;i++)
cin>>p[i].x>>p[i].y;
sort(p,p+n,cmp);
int m=n/-;
x1=p[m].x-,x2=p[m].x+,y1=p[m].y+e,y2=p[m].y-e+;
printf("%d %d %d %d\n",x1,y1,x2,y2);
}
return ;
}
[题解]Magic Line-计算几何(2019牛客多校第三场H题)的更多相关文章
- 2019牛客多校第三场H Magic Line 思维
Magic Line 题意 给出n(偶)个整点 整点范围1000,找出一条直线,把n个点分成均等的两部分 分析 因为都是整数,并且范围比较小,所以直接按x排序找到在中间那一部分,并且把中间那一部分的点 ...
- 2019 牛客多校第三场 H Magic Line
题目链接:https://ac.nowcoder.com/acm/contest/883/H 题目大意 给定 N 个不同的整数点,N 为偶数,求一条直线,这条直线能把这 N 个点对半分开,输出这条直线 ...
- [题解]Crazy Binary String-前缀和(2019牛客多校第三场B题)
题目链接:https://ac.nowcoder.com/acm/contest/883/B 题意: 给你一段长度为n,且只有 ‘0’ 和 ‘1’ 组成的字符串 a[0,...,n-1].求子串中 ‘ ...
- 启发式分治:2019牛客多校第三场 G题 Removing Stones
问题可以转换为求有多少个区间数字的总和除2向下取整大于等于最大值.或者解释为有多少个区间数字的总和大于等于最大值的两倍(但是若区间数字总和为奇数,需要算作减1) 启发式分治: 首先按最大值位置分治,遍 ...
- 2019牛客多校第八场 F题 Flowers 计算几何+线段树
2019牛客多校第八场 F题 Flowers 先枚举出三角形内部的点D. 下面所说的旋转没有指明逆时针还是顺时针则是指逆时针旋转. 固定内部点的答案的获取 anti(A)anti(A)anti(A)或 ...
- 2019牛客多校第三场H-Magic Line
Magic Line 题目传送门 解题思路 因为坐标的范围只有正负1000,且所有点坐标都是整数,所以所有点相连构成的最大斜率只有2000,而我们能够输出的的坐标范围是正负10^9.所以我们先把这n个 ...
- 2019牛客多校第四场 I题 后缀自动机_后缀数组_求两个串de公共子串的种类数
目录 求若干个串的公共子串个数相关变形题 对一个串建后缀自动机,另一个串在上面跑同时计数 广义后缀自动机 后缀数组 其他:POJ 3415 求两个串长度至少为k的公共子串数量 @(牛客多校第四场 I题 ...
- [题解]Shorten IPv6 Address-模拟(2019牛客多校第六场B题)
题目链接:https://ac.nowcoder.com/acm/contest/886/B 题意: 您将获得一个IPv6地址,该地址是128位二进制字符串.请根据以下规则确定其最短的表示: 以十六进 ...
- 2019牛客多校第六场H Pair(数位DP 多个数相关)题解
题意: 传送门 给你\(A,B,C\),要求你给出有多少对\((x, y)\)满足\(x\in [1,A],y\in [1,B]\),且满足以下任意一个条件:\(x \& y > C\) ...
随机推荐
- telnet访问出现telnet:Unable to connect to remote host: No route to host
Linux下的防火墙默认是不允许telnet服务通过的,所以,当防火墙不允许telnet服务通过时就会出现上面的这种情况,可以将防火墙关闭或者勾选允许telnet服务即可解决如上的问题.
- [BZOJ2138]stone(Hall定理,线段树)
Description 话说Nan在海边等人,预计还要等上M分钟.为了打发时间,他玩起了石子.Nan搬来了N堆石子,编号为1到N,每堆 包含Ai颗石子.每1分钟,Nan会在编号在\([L_i,R_i] ...
- mysql (mariadb)表结构添加修改删除方法总结
1,添加表字段 alter table table1 add ptel varchar(100) not Null; alter table table1 add id int unsigned no ...
- CSS-03 queue方法
queue方法 摘自W3C school手册,用于简单理解使用queue方法 队列 每个元素均可拥有一到多个由 jQuery 添加的函数队列.在大多数应用程序中,只使用一个队列(名为 fx).队列运行 ...
- setup PC not sleep when turn off display
- [SCOI2010]股票交易(单调队列优化dp)
[SCOI2010]股票交易 题目描述 最近lxhgww又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律. 通过一段时间的观察,lxhgww预测到了未来T天内某只股票的走势,第 ...
- 为什么单个binlog会大于max_binlog_size设置
查看参数设置mysql> show global variables like '%max_binlog_size%';+-----------------+------------+| Var ...
- bzoj2560 串珠子 状压DP
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=2560 题解 大概是这类关于无向图的联通性计数的套路了. 一开始我想的是这样的,考虑容斥,那么就 ...
- cmd退出python
cmd中如何退出Python (1)在命令行上输入exit() (2)在命令行上输入quit() (3)ctrl+Z 然后回车
- vue 全局 js 方法
1.新增 getCurrentDataType.js 文件 import cookieUtils from '@/config/cookieUtils' function getCurrentData ...