zoukankan      html  css  js  c++  java
  • 计算几何题(×)

    题面

    给定 (n) 条直线,直线的交点的 (x) 轴坐标两两不相同,求从左往右排的第 (k) 个交点的 (x) 轴坐标(精确到小数点后六位)。

    题解

    这题乍一看是道计算几何题,实际上这题和计算几何并没有什么关系。(雾)
    考虑一条 (x = -∞) 的竖线。很显然,(n) 条直线和这条竖线的交点的交点的顺序,与这 (n) 条直线的斜率的顺序是相反的。
    (类似的,(x = +∞) 的竖线与 (n) 条直线的交点的顺序与斜率的顺序是相同的。)
    (x = -∞) 的竖线与 (n) 条直线的交点的顺序视为正序,可知 (x = +∞)(frac{n * (n - 1)}{2}) 个逆序对。
    设竖线 (l) 的初始位置为 (x = -∞) ,将 (l) 向右挪,则每经过一个直线与直线的交点,直线的逆序对数就会 (+1)
    故可以二分直线的位置,每次 (check) 时,(O (n log n)) 求该竖线与 (n) 条直线的交点的逆序对,即可简单求出该竖线左侧有多少交点。

  • 相关阅读:
    SpringBoot配置文件(2)
    SpringBoot配置文件(1)
    java8新特性之stream流
    java8新特性之Lambda表达式
    zoj 1709 Oil Deposits
    zoj 2110 Tempter of the Bone
    poj 2823 Sliding Window
    fzu 1894 志愿者选拔
    hdoj 1754 I Hate It
    poj2404中国邮递员
  • 原文地址:https://www.cnblogs.com/HarryHuang2004/p/14070113.html
Copyright © 2011-2022 走看看