引入

随机增量算法是计算几何的一个重要算法,它对理论知识要求不高,算法时间复杂度低,应用范围广大。

增量法 (Incremental Algorithm) 的思想与第一数学归纳法类似,它的本质是将一个问题化为规模刚好小一层的子问题。解决子问题后加入当前的对象。写成递归式是:

增量法形式简洁,可以应用于许多的几何题目中。

增量法往往结合随机化,可以避免最坏情况的出现。

最小圆覆盖问题

题意描述

在一个平面上有 个点,求一个半径最小的圆,能覆盖所有的点。

过程

假设圆 是前 个点的最小覆盖圆,加入第 个点,如果在圆内或边上则什么也不做。否则,新得到的最小覆盖圆肯定经过第 个点。

然后以第 个点为基础(半径为 ),重复以上过程依次加入第 个点,若第 个点在圆外,则最小覆盖圆必经过第 个点。

重复以上步骤。(因为最多需要三个点来确定这个最小覆盖圆,所以重复三次)

遍历完所有点之后,所得到的圆就是覆盖所有点得最小圆。

性质

时间复杂度 ,证明详见参考资料。

空间复杂度

实现

练习

最小圆覆盖

「HNOI2012」射箭

CodeForces 442E

参考资料与扩展阅读

随机增量算法 - 解轶伦

https://www.cnblogs.com/aininot260/p/9635757.html

https://www.cise.ufl.edu/~sitharam/COURSES/CG/kreveldnbhd.pdf

https://blog.csdn.net/u014609452/article/details/62039612

此文件夹下有0条笔记。