点边容斥小记

前言

一场模拟赛中用到了此 trick,于是写一下。

技巧内容

点边容斥顾名思义与点与边有关,常用于的场景有:路径无交边/点,连通块个数等图论问题。

例题 1

  • 给定一棵树,和若干个点对,第 \(i\) 个点对有 \(p_i\) 的概率消失,一个点对有贡献当且仅当与没有消失的点对的路径无交边,求期望的贡献,每个点对的贡献为 1。

考虑如何刻画两个点对路径无交边,因为路径的交也是一条路径,如果有交点当且仅当路径的交满足 \(E=V-1\),不妨顺着此思路延申到有交边的情况,点可以理解为长度为 0 的链,记再路径的交上,长度为 \(x\) 的链的数量为 \(cnt_x\),为那么上式就是 \(cnt_0-cnt_1=1\),因此有交边的情况可拓展为 \(cnt_1-cnt_2=1\),因此我们知道了判是否有交边的条件。

回到题目中,先利用期望的线性性转化为每个点对贡献的概率,第 \(i\) 个点对贡献的概率为 \((1-p_i)\times \prod\limits_{点对 x与 i 有交边}p_x\),考虑如何求后者。

这时要用到上述技巧,因为路径有交边时 \(cnt_1-cnt_2=1\),反之有 \(cnt1-cnt_2=0\),发现每个 \(p_i\) 的贡献恰好是 \(p_i=p_i^{cnt_1-cnt_2}\)。因此题目被转化为了维护树上边和长为 \(2\) 的链,这里边维护的是 \(\prod p_i\) 而后者则是维护 \(\prod \frac{1}{p_i}\),因为该问题是静态的,所以树上差分+查询即可。

posted @ 2024-09-23 17:00  SmileMask  阅读(116)  评论(0编辑  收藏  举报