zoukankan      html  css  js  c++  java
  • 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半面上的都加在一起就可以了。

  • 相关阅读:
    struts2国际化
    Struts2运行机制
    HelloStruts2
    iOS流布局UICollectionView系列七——三维中的球型布局
    iOS- UITextView与键盘回收与键盘遮挡输入框
    web 网页截取图片
    iOS 平台如何使用 TestFlight 进行 Beta 测试
    Ubuntu shortcuts
    ubuntu study
    ios 即时通讯 xmpp
  • 原文地址:https://www.cnblogs.com/fengzhiyuan/p/8659107.html
Copyright © 2011-2022 走看看