1 条题解
-
0
自动搬运
来自洛谷,原作者为

Ukraine
**搬运于
2025-08-24 21:28:33,当前版本为作者最后更新于2022-07-13 20:53:42,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
这篇题解参考了讨论,并提供了较为详细的正确的证明。
记 为点集 的最小圆覆盖, 为点 的外接圆。
引理 1
在二维平面上有 四个不同的点,那么以下两条互为充要条件:
- 在 外;
- 存在 且 ,使得 包含这四个点。
引理 2
对于点集 ,如果 ,那么 在 上。
做法
我们考虑随机增量法:将点集随机打乱,从小到大枚举 ,如果 $p_i\in\operatorname{circle}(\{p_1,p_2,\dots,p_{i-1}\})$,那么前 个点的最小圆覆盖仍然是 。否则,根据引理, 一定在前 个点的最小圆上。所以,我们需要找到 ,使得 是前 个点的最小圆覆盖。
再从小到大枚举 ,如果 不在当前的最小圆覆盖内,就先令当前最小圆为以 为直径的圆,并枚举 ,并查看 是否在当前的最小圆内,若不在则用 作为当前的最小圆。
但如何保证更新一个最小圆后,这个圆仍然能够覆盖所有 的点?
假如原来的最小圆是 ,当最内层枚举了一个 ,且 不在当前最小圆上时,我们可以保证:
- ;
- ;
- 。
根据引理,可以得到:
归纳后得证。复杂度证明可以参考其他题解。
代码。
求两直线交点
记两条直线的方向向量分别是 ,直线上一点的向量分别是 $\overrightarrow{OP_1}=\bm{p_1},\overrightarrow{OP_2}=\bm{p_2}$。
设交点的向量 ,那么 。
拆开得:
$$k=\frac{(\bm{p_2}-\bm{p_1})\times \bm{d_2}}{\bm{d_1}\times \bm{d_2}}. $$
- 1
信息
- ID
- 719
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者