• 计算几何学习8


    差不多把第一期的题目搞完了

    还差一个随机的算法

    今天写的旋转卡壳 和 一个单位圆覆盖的题

    剩下时间在看之前说的UVA的题 是明白了

    然后就是魔女之泉2

    POJ 2187

    裸的旋转卡壳的问题

    注意这里対踵点不是点对 而是点与对应的直线

    点对的距离不满足单峰函数 可以找出反例

    枚举凸包上每条边 可以找到离他最远的点 这时候更新答案

    POJ 3608

    问两个凸多边形上的最近距离

    这里的距离可以是顶点间的距离 也可以是点到边 边到边的距离

    看的是这篇这篇博客

    还是按照旋转卡壳的思想 先找到分别的最上端和最下端点

    都按逆时针旋转这两个点为起始的线段 直到一边与凸多边形上的边重合时更新答案 继续旋转

    巧妙的是不需要角度计算 还是利用叉积

    方法是先固定一侧的一个线段, 旋转另一个 直到另一线段满足叉积的判断 然后更新答案 在枚举下一个点

    可以看第一篇博客里的配图

    代码也因此很精妙 更新两线段间的最短距离 其实是四个点到线段的距离 有板子的

    POJ 1981

    单位圆覆盖

    n^3暴力写的好的话可以过

    正解应该是 n ^ 2 logn的做法

    对于每个点, 我们以它为圆心做出一个单位圆,这样n个单位圆互相会有交集

    考虑其中一个圆, 他和其他圆会相交得到若干段圆弧, 我们离散后,可以知道每段圆弧被覆盖多少次

    圆弧被覆盖的次数即是在可以在同一个单位圆上的点的个数

    所以 n枚举点 nlogn排序 统计圆弧覆盖即可

    看完了那道题的做法觉得很巧妙 决定先写一发试试

  • 相关阅读:
    Maven的生命周期
    Maven坐标
    IDEA配置maven
    IDEA配置tomcat
    重写父类方法
    类的继承
    内部类
    static关键字
    线程相关知识
    数组
  • 原文地址:https://www.cnblogs.com/drzdk/p/7242133.html
Copyright © 2020-2023  润新知