min-max 容斥简记

min-max 容斥实际上就是这么个式子:

max(Sk)=TS(1)|T|k(|T|1k1)min(T)

可以通过构造系数二项式反演证明。

这个式子在期望意义下也是正确的,通常用于将搞定全部转化位搞定其中一个进而转化为不包含某个子集的方案计数,或找完的时间转化为第一次找到的时间。由于直接根据式子算是指数级的,通常还需要一些 dp 之类转化。

P4707 重返现世

n 种原料,需要集齐任意 k 种。每单位时间第 i 种原料被生成的概率是 pim 。求期望时间。

  • n1000|nk|10p=m10000

即求 E(min(Uk)),即 E(max(Unk+1))。使用 min-max 容斥,我们需要求求和号后的东西。E(min(T)) 是好算的:miTpi,剩下的部分只与 |T|,k 有关,以此为状态 dp,通过拆组合数转移。

「PKUWC2018」随机游走

给定一棵 n 个结点的树,你从点 x 出发,每次等概率随机选择一条与所在点相邻的边走过去。

Q 次询问,每次询问给定一个集合 S,求如果从 x 出发一直随机游走,直到点集 S 中所有点都至少经过一次的话,期望游走几步。

特别地,点 x(即起点)视为一开始就被经过了一次。

min-max 容斥后转化为求第一次到达某个点集的期望时间,可以列出一个随机游走的转移,用树上高消解出系数即可。还要求子集和,FWT 预处理即可。

「2020-02-16 联考」染色 (color)

有一棵 n 个点的树,一开始所有点都是白色。

接下来有若干次操作。每次操作会等概率选取树上的一条路径,把路径上所有节点涂黑。当整棵树都被染黑时,操作就会停止。

求结束前期望进行多少次操作,答案输出时对 1 004 535 809 (479×221+1) 取模。

min-max 容斥,相当于在树上选 k 个点,将树分成若干连通块,每条路径在小连通块内选的概率,需要记录连通个数和 |B|(|B|+1)2,树上背包 dp 这个东西即可。可以 NTT 优化,但是不优化也过了。

posted @   Aphrosia  阅读(256)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示