Magic Line

题目传送门

解题思路

因为坐标的范围只有正负1000,且所有点坐标都是整数,所以所有点相连构成的最大斜率只有2000,而我们能够输出的的坐标范围是正负10^9。所以我们先把这n个点按照x轴从小到大,x相同的再按照y轴从大到小排序,然后取第n/2个点,在这个点上做一条斜率极大的线(大于2000即可),此时在这条线的上方有n/2-1个点,下方有n/2个点,还有一个点在线上,我们先在线上取两个在图外的点(即x或y的绝对值大于1000),然后把其中一个点的y坐标-1,此时两个点连接的线就相当于往下偏了一下,把原来线上的点放到了上面,又不会碰到下面的点。

代码如下

#include <bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll; const int N = 1005; struct T{
int x, y;
T(){}
T(int x, int y): x(x), y(y){}
bool operator<(const T& a)const{
if(x != a.x)
return x < a.x;
else
return y > a.y;
}
}e[N]; int main()
{
int t;
scanf("%d", &t);
while(t --){
int n;
scanf("%d", &n);
for(int i = 1; i <= n; i ++){
int x, y;
scanf("%d%d", &x, &y);
e[i] = T(x, y);
}
sort(e + 1, e + n + 1);
int x = e[n / 2].x, y = e[n / 2].y;
ll k = 2001;
ll b = y - k * x;
printf("-2000 %lld 2000 %lld\n", -2000 * k + b, 2000 * k + b - 1);
}
return 0;
}

2019牛客多校第三场H-Magic Line的更多相关文章

  1. 2019 牛客多校第三场 H Magic Line

    题目链接:https://ac.nowcoder.com/acm/contest/883/H 题目大意 给定 N 个不同的整数点,N 为偶数,求一条直线,这条直线能把这 N 个点对半分开,输出这条直线 ...

  2. 2019牛客多校第三场H Magic Line 思维

    Magic Line 题意 给出n(偶)个整点 整点范围1000,找出一条直线,把n个点分成均等的两部分 分析 因为都是整数,并且范围比较小,所以直接按x排序找到在中间那一部分,并且把中间那一部分的点 ...

  3. [题解]Magic Line-计算几何(2019牛客多校第三场H题)

    题目链接:https://ac.nowcoder.com/acm/contest/883/H 题意: 给你偶数个点的坐标,找出一条直线将这n个点分成数量相等的两部分 并在这条直线上取不同的两个点,表示 ...

  4. 2019牛客多校第三场 F.Planting Trees

    题目链接 题目链接 题解 题面上面很明显的提示了需要严格\(O(n^3)\)的算法. 先考虑一个过不了的做法,枚举右下角的\((x,y)\),然后二分矩形面积,枚举其中一边,则复杂度是\(O(n^3 ...

  5. 2019牛客多校第三场D BigInteger——基础数论

    题意: 用  $A(n)$ 表示第 $n$ 个只由1组成分整数,现给定一个素数 $p$,求满足 $1 \leq i\leq n, 1 \leq j \leq m, A(i^j) \equiv 0(mo ...

  6. [2019牛客多校第三场][G. Removing Stones]

    题目链接:https://ac.nowcoder.com/acm/contest/883/G 题目大意:有\(n\)堆石头,每堆有\(a_i\)个,每次可以选其中两堆非零的石堆,各取走一个石子,当所有 ...

  7. [题解]Crazy Binary String-前缀和(2019牛客多校第三场B题)

    题目链接:https://ac.nowcoder.com/acm/contest/883/B 题意: 给你一段长度为n,且只有 ‘0’ 和 ‘1’ 组成的字符串 a[0,...,n-1].求子串中 ‘ ...

  8. 2019牛客多校第三场A Graph Games 分块思想

    题意:给你一张无向图,设s(x)为与x直接相连的点的集合,题目中有两种操作: 1:1 l r 将读入的边的序列中第l个到第r个翻转状态(有这条边 -> 没这条边, 没这条边 -> 有这条边 ...

  9. 启发式分治:2019牛客多校第三场 G题 Removing Stones

    问题可以转换为求有多少个区间数字的总和除2向下取整大于等于最大值.或者解释为有多少个区间数字的总和大于等于最大值的两倍(但是若区间数字总和为奇数,需要算作减1) 启发式分治: 首先按最大值位置分治,遍 ...

  10. 2019牛客多校第三场B-Crazy Binary String(前缀和+思维)

    Crazy Binary String 题目传送门 解题思路 把1记为1,把0记为-1,然后求前缀和,前缀和相等的就说明中间的01数一样.只要记录前缀和数值出现的位置即可更新出答案. 代码如下 #in ...

随机推荐

  1. C语言中#和##的作用

    使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起. #include <stdio.h> #define STR1(x) #x//使x成为字符串 #define STR2(x, ...

  2. Jmeter 5.1参数化csv引入文件

    Jmeter 5.1参数化csv引入文件 1.引用外部参数文件.新建json.txt文本输入需要的数据,我写了两条数据. 2.添加CSV数据文件设置,输入文件名.变量名.是否读取首行 报文中引用参数, ...

  3. 用 Flask 来写个轻博客 (6) — (M)VC_models 的关系(one to many)

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 扩展阅读 前言 一对多 再一次 sync db How to use ...

  4. MyEclipse增强代码补全

    MyElipse的默认代码提示功能隐藏了许多细节,需要开发者手动设置,一起来设置吧,让你的myeclpse更强大. 方法 1 打开MyEclipse 6.0.1,然后“window”→“Prefere ...

  5. js全局变量优点和缺点

    全局变量的优点:可以减少变量的个数,减少由于实际参数和形式参数的数据传递带来的时间消耗. 全局变量的缺点: (1)全局变量保存在静态存贮区,程序开始运行时为其分配内存,程序结束释放该内存.与局部变量的 ...

  6. 运维01 VMware与Centos系统安装

    VMware与Centos系统安装   今日任务 1.Linux发行版的选择 2.vmware创建一个虚拟机(centos) 3.安装配置centos7 4.xshell配置连接虚拟机(centos) ...

  7. activi7流程部署

    package com.zcc.acvitivi; import org.activiti.engine.ProcessEngine;import org.activiti.engine.Proces ...

  8. 元类,sqlalchemy查询

    import sqlalchemy from sqlalchemy.ext.declarative import declarative_base #创建连接实例 db = sqlalchemy.cr ...

  9. __name__ 与 __main__解读

    在python脚本中我们经常看到如下的代码: # hello.py def hello(): print("hello world!") def test(): hello() i ...

  10. Cobalt Strike特征修改

    一.Teamserver模块端口信息 vim teamserver修改Cobalt Strike默认服务端50500端口为其他任意端口 二.SSL默认证书信息 Cobalt Strike默认SSL证书 ...