题目 30095

极角排序

查看题解 ↗GitHub ↗如何评测
题号
30095
时间限制
10000 ms
内存限制
1024 MB
标签
计算几何
来源
Library Checker (yosupo06) - sort_points_by_argument

【题目描述】

给定 NN 个二维平面上的点 (x0,y0),(x1,y1),…,(xN−1,yN−1)(x_0, y_0), (x_1, y_1), \dots, (x_{N - 1}, y_{N - 1}),请按 atan2(x,y)\mathrm{atan2}(x, y) 对它们排序。 也就是说,按从半直线 x≤0, y=0x \le 0,\ y = 0 开始的逆时针顺序排列这些点。

注意:

  • atan2(x<0,y=0)=π\mathrm{atan2}(x < 0, y = 0) = \pi。
  • atan2(0,0)=0\mathrm{atan2}(0, 0) = 0。
  • 极角相同的点可以按任意顺序排列。
  • 64 位浮点类型(C++:double)的精度可能不够。请使用整数类型或 80 位浮点类型(C++:long double)。

【输入】

文本
$N$
$x_0$ $y_0$
$x_1$ $y_1$
:
$x_{N - 1}$ $y_{N - 1}$

【输出】

文本
$x_0$ $y_0$
$x_1$ $y_1$
:
$x_{N - 1}$ $y_{N - 1}$

【输入样例】

文本
8
1 0
0 0
-1 0
0 1
0 -1
1 1
2 2
-10 -1

【输出样例】

文本
-10 -1
0 -1
1 0
0 0
1 1
2 2
0 1
-1 0

【数据范围】

  • 1≤N≤2000001 \leq N \leq 200000
  • ∣xi∣,∣yi∣≤1000000000|x_i|, |y_i| \leq 1000000000
  • xi,yix_i, y_i 均为整数。

【来源】

Library Checker(yosupo06) sort_points_by_argument

本题为 special judge(输出任意合法解),暂不可本地评测。

数据下载

题目 30095 的公开数据

正在读取文件列表…

常用命令

题目 30095 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。