bzoj 5099 [POI2018]Pionek 计算几何 极角排序

Posted Kaiser

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bzoj 5099 [POI2018]Pionek 计算几何 极角排序相关的知识,希望对你有一定的参考价值。

 [POI2018]Pionek

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 269  Solved: 80
[Submit][Status][Discuss]

Description

在无限大的二维平面的原点(0,0)放置着一个棋子。你有n条可用的移动指令,每条指令可以用一个二维整数向量表
示。每条指令最多只能执行一次,但你可以随意更改它们的执行顺序。棋子可以重复经过同一个点,两条指令的方
向向量也可能相同。你的目标是让棋子最终离原点的欧几里得距离最远,请问这个最远距离是多少?
 

 

Input

第一行包含一个正整数n(n<=200000),表示指令条数。
接下来n行,每行两个整数x,y(|x|,|y|<=10000),表示你可以从(a,b)移动到(a+x,b+y)。
 

 

Output

输出一行一个整数,即最大距离的平方。
 

 

Sample Input

5
2 -2
-2 -2
0 2
3 1
-3 1

Sample Output

26

HINT

 

技术分享图片

 

确定一个方向,然后再该方向上投影为正的都需要计算,

所以这个极角排序后即可O(n),两个指针,这个是基本操作,这里有个性质,方向的话需要将其及其反方向都加进去。

然后去操作一波,就是180半面上的都加在一起就可以了。

 

以上是关于bzoj 5099 [POI2018]Pionek 计算几何 极角排序的主要内容,如果未能解决你的问题,请参考以下文章

bzoj 5099: [POI2018]Pionek

[武汉加油] bzoj 5099: [POI2018]Pionek 几何+双指针

[POI2018]Pionek

bzoj5100 [POI2018]Plan metra 构造

BZOJ5100[POI2018]Plan metra 构造

BZOJ5101[POI2018]Powód 并查集