2024.10.24 闲话

膜拜周指导 joke3579!!

歌:冷凍びぃむ - 一二三 feat. 初音ミク .

BJOI2014 想法

给一张 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 不等式:

\[\begin{aligned}\mathbb P(\delta >c\cdot \delta N^{-\frac 12})&=\mathbb P(\delta N>c\cdot \delta N^{\frac 12})\\&\le2\exp\left(-\dfrac{2(c-1)^2\sigma^2N}{N(B-A)^2}\right)\\&=2\exp\left(-2(c-1)^2\dfrac{\sigma^2}{(B-A)^2}\right)\end{aligned} \]

\(n\) 无关且随 \(c\) 增大指数级缩小 . 证毕 .

回到原题,首先回忆一下 \(k\)\([0,1]\) 内均匀随机数最小值期望的算法,知道 CDF 是 \(1-(1-x)^k\),那么有:

\[\int_0^1(1-x)^k\mathrm dx=\dfrac1{k+1} \]

那么可以类似算一下方差 . 下面 \(M\)\(k\) 个数最小值的随机变量:

\[\begin{aligned}\sigma^2&=\mathbb E\left(\left(M-\dfrac1{k+1}\right)^2\right)\\&=\mathbb E\left(M^2-\dfrac{2M}{k+1}+\dfrac1{(k+1)^2}\right)\\&=\int_0^1(1-\sqrt x)^k\mathrm dx-\dfrac{2\frac1{k+1}}{k+1}+\dfrac1{(k+1)^2}\\&=\dfrac2{k^2+3k+2}-\dfrac1{(k+1)^2}\\&=\dfrac k{(k+1)^2(k+2)}\end{aligned} \]

那么可以知道 \(\sigma=\Theta(k^{-1})\),使用 Lemma 可以知道 \(|\delta|:\!=|M-\frac1{k+1}|<O(k^{-1}N^{-\frac12})\) 几乎一定成立 .

那么:

\[\left|\dfrac 1M-k-1\right|=\dfrac{(k+1)^2|\delta|}{1+(k+1)\delta}=O(kN^{-\frac12}) \]

几乎一定成立 . 从而相对误差几乎一定不超过 \(O(N^{-\frac12})\) .

所以对于原题来说取 \(N=\varepsilon^{-2}\) 就足够了 .

Reference.

  1. 《浅谈 OI 中的近似算法》许庭强 .
  2. Private conversation with joke3579 .

太燃了我直接开始扩展 . 问题:求 \(n\)\([0,1]\) 内均匀分布的随机数第 \(k\) 小的 \(p\) 阶矩 .

那我们经验还是比较丰富的!首先考虑 \(n=k\),其实就是:

\[\int_0^1k\cdot x^{k+p-1}\mathrm dx=\dfrac{k}{k+p} \]

然后使用 min-max 容斥:

\[\sum_{i\ge 0}\dbinom{i-1}{k-1}\dbinom ni(-1)^{i-k}\dfrac i{i+p}=\dfrac{n!(k+p-1)!}{(k-1)!(n+p)!} \]

组合恒等式自己算吧(我拿战术技巧性 Wolfram | Alpha 算的),那么问题就解决了!\(p=1\)2023.11.8 闲话 .

CSP 前一天颓了一下午,我也是服了 .

posted @ 2024-10-24 19:15  Jijidawang  阅读(161)  评论(3编辑  收藏  举报
😅​