把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

概率论与概率方法 wygz

分为概率期望和概率方法两个部分。

概率期望

概率论基础

AGC060C Large Heap

一个发现是只有最左链和最右链有用。

如果大小关系形成树形结构,并且均为父亲小于儿子,则方案数为 \(n!\prod \frac{1}{siz_i}\),其中 \(siz_i\) 表示 \(i\) 的子树大小。

考虑依次去钦定最左链和最右链之间的大小关系,设 \(f_{i,j}\) 表示已经定了最左链从下到上的 \(i\) 个以及最右链的 \(j\) 个的 \(\prod \frac{1}{siz_i}\) 之和,转移直接枚举接下来一个放在左边还是右边即可,需要判掉 \(A\)\(B\) 之前出现的情况。

复杂度瓶颈在于求 \(O(n^2)\) 个逆元,如果预处理可以做到 \(O(n^2)\)

submission

条件概率

\(P(A\mid B)\) 表示在条件 \(B\) 成立的概率下,\(A\) 成立的概率。

则显然有 \(P(A\and B)=P(A\mid B)P(B)\)

从另一个方面来看,有 \(P(A\and B)=P(B\mid A)P(A)\)

移一下项就可以得到 \(P(A\mid B)=\frac{P(B\mid A)P(A)}{P(B)}\),这也被称为贝叶斯公式。

CF1096E The Top Scorer

记条件 \(A\)\(a_1\) 是 winner 的概率,\(B\)\(a_1\geq r\) 的概率。

我们需要求 \(P(A\mid B)=\frac{P(B\mid A)P(A)}{P(B)}\),我们分别考虑这三个如何计算。

\(P(A)\) 显然是 \(\frac{1}{n}\)\(P(B)\) 只需要计算将 \(s-r\) 个数分配给 \(p\) 个人的方案数即可。\(P(B\mid A)\) 等价于这个序列最大值 \(\geq r\),进行容斥,计算这个序列所有数都 \(<r\) 的方案数,这个可以进一步容斥:钦定有若干位置 \(\geq r\),然后直接分配,乘以容斥系数。

复杂度为 \(O(p+s)\)

submission

ARC150D Removing Gacha

根据期望的线性性,我们可以考虑每个点被选取的次数。一个点 \(x\) 被选取的期望次数只和其深度有关,因此我们需要求出 \(f_d\) 表示一个深度为 \(d\) 的节点期望被选取的次数。

如果我们将选点的过程看做在 \(d\) 个点中随便选,选到好点就重选的过程,则停止时间为 \(d\) 个点都被选过的时间,而第 \(d\) 个点期望被选中的次数就是这个时间乘上 \(\frac{1}{d}\)

假设当前已经选了 \(x\) 个点了,则选到一个新的没有选过的点的概率为 \(\frac{d-x}{d}\),那么需要的期望次数就是 \(\frac{d}{d-x}\),步数之和就是 \(\sum\limits_{0\leq x< d}{\frac{d}{d-x}}\),容易 \(O(n)\) 计算出所有 \(f\),进而求出答案。

submission

ABC270Ex add 1

刻画这种题的一个比较好的办法是概率生成函数,而概率生成函数一个通俗易懂的模型是赌徒与酒馆的模型。

这题相当于每次随机报 \([1,n]\) 内的整数,问一个时刻的期望,满足后 \(A_1\) 个没有 \(1\),后 \(A_2\) 个没有 \(2\),以此类推。

赌徒与酒馆的模型是这样的:每个时刻都会有一个赌徒拿一块钱进入酒馆,并且从第 \(A_n\) 个开始赌,就赌接下来的这个数满足从后到前第 \(A_n\) 个数的条件。如果赌对了,那么它的钱数会乘上概率的倒数,否则就没有钱了。

因为这是一个零和博弈,所以最后所有赌徒手上的钱数就是时间的期望值。考虑达到最终状态的时候,最后的 \(A_n\) 个赌徒都没有输过,因此我们只需要计算这些赌徒手上钱的和即可,而这是一个 \(O(n)\) 段的等比数列求和问题,可以在 \(O(n\log A)\) 的时间复杂度你解决。

submission

连续性随机变量

不会。

[ARC113F] Social Distance

考虑计算 \(f(t)\) 表示 \(\min a_i-a_{i-1}\geq t\) 的概率,然后将 \(f(t)\) 积分即可求出我们需要的答案。

记区间 \([l_i,r_i]\) 为第 \(i\) 个数的取值区间,则我们将 \(l_i\)\(r_i\) 都减去 \(it\),这样就变成求 \(n\) 个数单调递增的概率。

每个端点都可以看做一条直线。如果直线的相对顺序是固定的,我们可以求出答案关于 \(t\) 的多项式:设 \(f_{i,j}\) 表示考虑到第 \(i\) 条直线和第 \(i+1\) 条直线之间的位置,已经放了 \(j\) 个数的多项式,转移需要枚举这段区间中放了几个数,并乘以 \(\frac{1}{x!}\)。因为每次乘的都是一个一次多项式,所以这个 DP 的复杂度是 \(O(n^4)\) 的。

又因为直线之间只会变化 \(O(n^2)\) 次,所以每次变化暴力 DP 即可,复杂度 \(O(n^6)\)。因为 DP 部分的多项式长度不满,所以常数极小。

submission

概率方法

比较高妙。

概率性算法

通过随机化,使算法以某个较高正确率通过。

[GDKOI2023 提高组] 矩阵

两边随机向量去乘即可。

submission

概率性证明

核心思想主要是一个:若 \(E(X)=k\),则一定存在一个 \(X\geq k\)

考虑如下问题:给定无向图 \(G\),找到一个至少包含一半边的二分子图。

给每个点随机染色,将两端点异色的边加入这个二分子图,则 \(E(|E|)=\frac{1}{2}|E|\),因此一定存在。

并且,直接这样随机就可以以高于 \(\frac{1}{|E|}\) 的概率找到一个合法的划分方法。

QOJ #6413. Classical Graph Theory Problem

前面一大堆图论推导,最后是上面那个问题。后面忘了。

posted @ 2024-05-27 17:57  275307894a  阅读(50)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end