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) 条直线的交点的逆序对,即可简单求出该竖线左侧有多少交点。

  • 相关阅读:
    drf认证组件
    播放音频
    推荐
    makefile编写
    qt文件操作mv
    qt文件http网络下载
    为qt在window上用源代码编译库 (部分转载)
    qt线程池(转)
    crc校验
    树莓派网络配置查询
  • 原文地址:https://www.cnblogs.com/HarryHuang2004/p/14070113.html
Copyright © 2011-2022 走看看