bzoj 5099 [POI2018]Pionek 計算幾何 極角排序
阿新 • • 發佈:2018-03-27
包含 int HP 一起 www 重復 post 在一起 無限
Submit: 269 Solved: 80
[Submit][Status][Discuss]
2 -2
-2 -2
0 2
3 1
-3 1
[POI2018]Pionek
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 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
52 -2
-2 -2
0 2
3 1
-3 1
Sample Output
26HINT
確定一個方向,然後再該方向上投影為正的都需要計算,
所以這個極角排序後即可O(n),兩個指針,這個是基本操作,這裏有個性質,方向的話需要將其及其反方向都加進去。
然後去操作一波,就是180半面上的都加在一起就可以了。
bzoj 5099 [POI2018]Pionek 計算幾何 極角排序