概率期望
定义法
期望=概率* 权值
因此可以使用各种方法计算出每种权值出现的概率是多少
设 \(f[i][j]\) 表示 \(i\) 子树中长度为 \(j\) 的概率
首先需要补充一个期望的小 \(trick\):有 \(n\) 个物品,每次选出一个并放回,求 \(k\) 个关键物品均被取过的期望次数是多少
考虑我们每次只扩展一个物品,第一个物品期望在 \(\frac{n}{k}\) 时间取到,第二个为 \(\frac{n}{k-1}\),依次类推可以得到公式为:
回头再看这道题,可以发现虽然每一个可能的段的期望都是 \(f(tot,m)\),但是由于只需要有一个段满足就可行,相当于是 \(min\) 的期望,那么答案的期望会改变
回头再看我们的公式求的是什么,是某一个集合中的点的时间的 \(max\) 的期望!
这很清晰地启发我们使用 \(min-max\) 容斥来解决即可
再来介绍一种硬推式子的题解做法:
首先按照定义拆成在每个 \(i\) 时间后结束的概率,考虑对集合容斥,那么变成集合中的段都在 \(i\) 时间内满足的概率
这个也可以容斥,枚举有几个没满足,贡献为 \((\frac{tot-i}{tot})^t\)
把第一次容斥提前,这一项和那个 \(\sum_{t=0}^\inf\) 放到一起可以用公式计算成定值
化完式子以后可以发现两个公式貌似差不多(兴许可以在代数上互相变换?)
形如 \(\sum_{i=0}^{2^{n-m+1}}(-1)^if(num_i)\)
这时已经可以过 \(n-m\) 较小的数据了,考虑类似根号分治弄出来一种 \(m\) 较小的情况的解法
观察公式只与 \(num_i\) 有关,考虑统计出每种 \(num_i\) 的有多少种方案
而 \(num_i\) 由什么决定呢?是当前段的长度!
也就是说设计一种 \(dp\),设出目前的和为多少,而把一个新的人放进集合里对和的贡献只与前 \(m\) 个位置的状态有关
这样的复杂度就是 \(2^m\) 级别的了
考虑当前的每一根直径,一定是由直径的两个端点的删除时间决定的,且删掉其中一个即可
如果直径的点数为偶数,那么相当于是一侧的点都需要删掉
如果为奇数,那么需要删到只剩一个点
总之可以划归为一个问题即有多个集合,删到只剩一个集合的期望
考虑钦定一个集合是最后选的,那么需要删掉其余所有的集合,这就是上一道题中提到的那个问题
但是这样计算会算重多,算重即是不小心把所有集合都删了,只需要找到算重了多少次即可
考虑对于每一种删除的方案,删除了 \(n-1\) 个数
首先在 \(n\) 个数的计算过程中都考虑了这种方案
但是大部分,具体而言是 \(n-1\) 次中,都得到了错的方案,即全部删没
那么最终减去 \(n-1\) 个全部删完的期望即可
先补充结论:长度为 \(1\) 的区间上随机撒点,形成的第 \(k\) 小区间长度期望为:
剩下的就是转化的si
期望的线性性
总期望等于部分期望和
可以发现一号猎人被杀死的轮数等于比其先死的猎人个数的期望+1
根据线性性,将其拆分为每个猎人比一号猎人先死的概率
那么 \(p_i=\frac{p_i}{p_i+p_1}\)
首先根据线性性转化成每个点被自己删除的概率
这等价于不被别人删除的概率,等于 \(\frac{1}{能到达它的点}\)
表达式法
在许多不太直观的概率问题中可以列出变量直接的概率转移关系,之后通过计算或高斯消元等方式求解
设两人各操作一次为一轮,那么 \(ans=p+(1-p)(1-q)ans\)
可以解得 \(ans=\frac{p}{1-(1-p)(1-q)}\)
后面的也类似,详见 这里
CF1349D、CF464D
DP
期望常常与 \(dp\) 紧密联系
注意期望 \(dp\) 往往都是倒序进行,因为期望是贡献\(\times\)概率,那么只有到最后一步才知道贡献是多少,这样可以方便中途的 \(max\) 与决策
另外,有些时候是类似于条件概率的,也就是说 \(dp\) 的过程相当于是一个模拟的正着记忆化搜索的过程,那么站在一个状态上对着下一步的决策得之了其到终点期望以后才能产生决策,并且此时的概率是已知的,而整个过程相当于是倒着 \(dp\) 的过程
一个非常坑的期望题
第一反应肯定是设 \(f[i][S]\) 表示到第 \(i\) 关时宝物状态是 \(S\) 的期望,但是存在问题是从前往后转移会出现不合法的状态,使得期望的计算不合法
那么考虑倒推,设 \(f[i][S]\) 表示从后到第 \(i\) 个物品集合是 \(S\) 的方案数,那么
如果满足条件:\(f[i][S]+=max(f[i+1][S],f[i+1][S|1<<k-1]+w)\)
如果不满足条件:\(f[i][S]+=f[i+1][S]\)
直接把所有需要知道的信息状压/记录出来,记忆化搜索即可
注意转移是可能成环的,那么每次转移的时候的一步需要保证 \(dp\) 数组的某一维发生了变化才算转移,具体可以 \(bfs\) 之类转移