题目链接:https://ac.nowcoder.com/acm/contest/883/H

题意:二维平面上有n个不同的点,构造一条直线把平面分成两个点数相同的部分。

题解:对这n个点以x为第一关键字,y为第二关键字从小到大排序。找到最中间两个点。然后以这两个点为界限,将平面划分为左右两个点数相同的区域。如图所示。

由于题目中给出点的坐标绝对值≤1000,而我们需要给出的点的坐标范围为1e9,因此必定可以找到这样一条很陡的直线。

AC代码

#include <bits/stdc++.h>
#define SIZE 1007
#define rep(i, a, b) for(int i = a; i <= b; ++i)
using namespace std;
typedef long long ll;
ll n, m, t;
struct Point {int x, y;
}p[SIZE];
double xx, yy;
bool cmpx(Point a, Point b) {if (a.x == b.x) return a.y < b.y;else return a.x < b.x;
}
int mm = 1e4;
int main() {cin >> t;while (t--) {cin >> n;double tx1, tx2, ty1, ty2;rep(i, 1, n) cin >> p[i].x >> p[i].y;sort(p + 1, p + n + 1, cmpx);tx1 = p[(n / 2)].x, ty1 = p[(n / 2)].y; //中间的两个点tx2 = p[(n + 2) / 2].x, ty2 = p[(n + 2) / 2].y;double mx = 0.5 * (tx1 + tx2), my = 0.5 * (ty1 + ty2);  //中点坐标int rx1 = 0, rx2 = 0, ry1 = 0, ry2 = 0;if ((floor(mx) == floor(mx + 0.6))) rx1 = mx - 1, rx2 = mx + 1; //把中点的x坐标偏移到最近的整数x坐标轴else {rx1 = floor(mx);rx2 = rx1 + 1;}if ((floor(my) == floor(my + 0.6))) ry1 = my + mm, ry2 = my - mm;   //y坐标偏移else {ry1 = floor(my) + 1 + mm;ry2 = floor(my) - mm;}cout << rx1 << ' ' << ry1 << ' ' << rx2 << ' ' << ry2 << endl;}return 0;
}

总结:赛场上由于忘记正负数使用int取整的结果不同,没用floor函数取整,导致罚时++,今后务必避免。

转载于:https://www.cnblogs.com/st1vdy/p/11245932.html

[题解] 2019牛客暑期多校第三场H题 Magic Line相关推荐

  1. 2019牛客暑期多校训练营(第一场场)_I题Points Division(线段树+DP维护区间最大值)

    题目链接: https://ac.nowcoder.com/acm/contest/881/I 题意: 给你n个点,每个点的坐标为(xi,yi),有两个权值ai,bi. 现在要你将它分成A,B两部分, ...

  2. 2019牛客暑期多校第八场 Flower Dance

    题意 给一些点,找4个点,要求1个点在剩余三个点围成的三角形的内部,问方案数 题解 写得我有种不想碰几何的冲动.... 太迷了,精度迷,同一种意思的不同表达迷,明明那么简洁的思路,为什么写出来这么多特 ...

  3. 2020牛客暑期多校训练营(第九场)E题 Groundhog Chasing Death

    题意 计算 ∏ i = a b ∏ j = c d g c d ( x i , y j ) \prod_{i=a}^{b}\prod_{j=c}^{d}gcd(x^i,y^j) i=a∏b​j=c∏d ...

  4. 2019牛客暑期多校训练营(第五场)C generator 2 (BSGS)

    2019牛客暑期多校训练营(第五场)C generator 2 思路 x0=x0x_0 = x_0x0​=x0​ x1=a∗x0∗bx_1 = a * x_0 * bx1​=a∗x0​∗b x2=a∗ ...

  5. 2019牛客暑期多校训练营(第四场)----E- triples II

    首先发出题目链接: 链接:https://ac.nowcoder.com/acm/contest/884/E 来源:牛客网 涉及:位运算,容斥定义,dp 点击这里回到2019牛客暑期多校训练营解题-目 ...

  6. 2019牛客暑期多校9H:Cutting Bamboos【主席树+二分】

    题目: 2019牛客暑期多校训练营9H:Cutting Bamboos 题意: 给出一排竹子,然后给出Q次询问,每次询问你需要水平砍y刀将[L,R]区间里的竹子砍完,并且每次砍下的竹子高度和一样,问第 ...

  7. 2019牛客暑期多校训练营(第三场)H.Magic Line

    2019牛客暑期多校训练营(第三场)H.Magic Line 题目链接 题目描述 There are always some problems that seem simple but is diff ...

  8. 2021牛客暑假多校第八场 K题—Yet Another Problem About Pi

    2021牛客暑假多校第八场 K题-Yet Another Problem About Pi 题意:告诉你一个单元格的长和宽,问你走Π(3.1415926-)的长度距离最多可以走几个单元格 思路:沿着单 ...

  9. 2021牛客暑期多校训练营2,签到题CDFKI

    2021牛客暑期多校训练营2 题号 标题 已通过代码 通过率 团队的状态 A Arithmetic Progression 点击查看 6/72 未通过 B Cannon 点击查看 34/104 未通过 ...

最新文章

  1. 第三十二课.脉冲神经网络SNN
  2. 使用ES6的Promise完美解决回调地狱
  3. NetDevOps — 华为设备命令汇总
  4. 三十五、SQL和数据库相关概念
  5. c++ new一个结构体_C语言结构体,又一个纸老虎,纯干货讲解(附代码)
  6. Attribute “singleton” must be declared for element type “bean”.
  7. python 移动平均值_python - 如何使用NumPy计算移动平均值? - 堆栈内存溢出
  8. 让你的博文自动带上缩址,方便发到微博客上
  9. FBReaderJ源码编译配置
  10. 刚入行的测试工程师如何自学软件测试【下篇】-- 软实力
  11. 函数调用关系python_追踪python函数调用关系
  12. [sdoi2015]排序(搜索+剪枝优化)
  13. SQL经典练习题及答案
  14. 不想更新计算机怎么办,联想笔记本电脑不想更新系统更新怎么办啊
  15. SSM毕设项目国有资产管理系统3c938(java+VUE+Mybatis+Maven+Mysql)
  16. 面对阿里云、腾讯云、百度云、青云等云计算平台,大家选择的时候更看重什么?
  17. CF755F PolandBall and Gifts
  18. excel =rand() 随机生成数字或区间数字的函数使用
  19. 海域重力场与垂直基准产品构建及质量评估系统
  20. 空洞卷积(dilated convolution)理解

热门文章

  1. [转载]秀脱linux实战笔记linux-kernel-3.0.3实战篇
  2. 【转载】 C# 中的Async 和 Await 的用法详解
  3. idea设置JVM运行参数
  4. sqlserver 查找数据混排
  5. HDU 4023 (博弈 贪心 模拟) Game
  6. css js 兼容问题
  7. 云计算入门学习资料,linux云计算学习大纲
  8. MySQL集群节点宕机,数据库脑裂!如何排障?
  9. Xshell相关优化
  10. vue基础整理-组件