2024.10.24 闲话
膜拜周指导 joke3579!!
歌:冷凍びぃむ - 一二三 feat. 初音ミク .
给一张 DAG \(G=(V,E)\),求每个点能到达的节点个数,允许相对误差 \(\varepsilon=\frac14\) .
数据范围:\(|V|\le10^5\),\(|E|\le10^6\) .
做法:熟知 \(k\) 个 \([0,1]\) 内的均匀随机数最小值的期望为 \(\frac1{k+1}\) . 那么随机 \(N=\varepsilon^2\) 轮每轮给每个点一个随机数求最小值的平均值,最后按 \(\frac1{k+1}\) 倒着推回答案 . 时间复杂度 \(O((|V|+|E|)\varepsilon^{-2})\) .
证明:
Lemma
考虑一个 \([A,B]\) 内的随机数生成器,期望为 \(E_0\),方差为 \(\sigma^2\) . 则随机 \(N\) 次得到的平均值 \(E\) 与 \(E_0\) 的绝对误差 \(\delta=|E-E_0|\) 几乎一定满足 \(\delta<O(\sigma N^{-\frac12})\) .
证明:直接使用 Hoeffding 不等式:
与 \(n\) 无关且随 \(c\) 增大指数级缩小 . 证毕 .
回到原题,首先回忆一下 \(k\) 个 \([0,1]\) 内均匀随机数最小值期望的算法,知道 CDF 是 \(1-(1-x)^k\),那么有:
那么可以类似算一下方差 . 下面 \(M\) 是 \(k\) 个数最小值的随机变量:
那么可以知道 \(\sigma=\Theta(k^{-1})\),使用 Lemma 可以知道 \(|\delta|:\!=|M-\frac1{k+1}|<O(k^{-1}N^{-\frac12})\) 几乎一定成立 .
那么:
几乎一定成立 . 从而相对误差几乎一定不超过 \(O(N^{-\frac12})\) .
所以对于原题来说取 \(N=\varepsilon^{-2}\) 就足够了 .
Reference.
- 《浅谈 OI 中的近似算法》许庭强 .
- Private conversation with joke3579 .
太燃了我直接开始扩展 . 问题:求 \(n\) 个 \([0,1]\) 内均匀分布的随机数第 \(k\) 小的 \(p\) 阶矩 .
那我们经验还是比较丰富的!首先考虑 \(n=k\),其实就是:
然后使用 min-max 容斥:
组合恒等式自己算吧(我拿战术技巧性 Wolfram | Alpha 算的),那么问题就解决了!\(p=1\):2023.11.8 闲话 .
图
CSP 前一天颓了一下午,我也是服了 .
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/18473851
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ