首页 > 其他分享 >Luogu P5643 [PKUWC2018]随机游走

Luogu P5643 [PKUWC2018]随机游走

时间:2023-05-19 21:22:13浏览次数:47  
标签:结点 期望 Luogu sum P5643 son fa PKUWC2018 deg

题意

给出一棵 \(n\) 结点树,从结点 \(x\) 出发,每次从当前点的所有边中选一条走过去,\(Q\) 次询问给定一个点集 \(S\),随机游走直到经过 \(S\) 中的每一个点至少一次的期望总步数,出发点 \(x\) 默认在开始时已经被经过。

\(n\le 18, Q\le 5000\)

解法

萌新第一次见到这种题,感觉很神。

首先先转化一下询问,设一个点的权值为第一次到达时所用的步数,于是询问就是求 \(S\) 中点权的期望最大值。

期望最大值是不好处理的,转化为期望最小值。

由期望形式的 \(\mathrm{Min-Max}\) 反演有:

\[E(\max(S)) = \sum_{T\subset S} (-1)^{|T|+1}E(min(T)) \]

于是想到对每个点集 \(T\) 预处理出 \((-1)^{|T|+1}E(min(T))\) 然后使用 \(\mathrm{FWT}\) 计算高维前缀和。

接下来问题变为如何对于每个 \(T\) 快速求解 \(E(min(T))\),设从 \(i\) 出发第一次到达 \(T\) 中的点的期望步数为 \(f_i\),那么对于不属于 \(T\) 中的点可以列出转移方程:

\[f_i = \frac1{deg_i}\sum_{(i,j)\in E} f_j +1 \]

我们需要求 \(f_x\) 的值。

转移关系中有环,直接使用高斯消元复杂度显然过于夸张,but 由于树形结构的特殊性,我们可以把 \(f_x\) 视为根,然后使用待定系数法。

考虑对每个 \(i\) 求出满足 \(f_i = k_i f_{fa_i} + b_i\) 的 \(k_i\) 和 \(b_i\),对于根结点 \(x\) 就有 \(f_x = b_x\)。归纳地考虑,对于叶子结点显然有 \(k = 1, b = 1\),对于其他结点,其所有叶结点的 \(f\) 均为其一次函数,代入转移方程显然其 \(f\) 值也为其父结点 \(f\) 的一次函数。

具体地推式子:

\[\begin{split} f_i &= \frac1{deg_i}\left(f_{fa_i} + \sum_{j\in son_i} f_j\right) + deg_i \\ deg_if_i &= f_{fa_i}+\sum_{j \in son_i }k_jf_i+b_j + deg_i \\ deg_if_i &= f_{fa_i}+f_i\sum_{j \in son_i }k_j+\sum_{j \in son_i }b_j + deg_i\\ (deg_i-\sum_{j \in son_i }k_j)f_i &= f_{fa_i}+\sum_{j \in son_i }b_j + deg_i \\ f_i &= \frac{1}{deg_i-\sum_{j \in son_i }k_j}f_{fa_i}+\frac{\sum_{j \in son_i }b_j + deg_i}{deg_i-\sum_{j \in son_i }k_j} \end{split} \]

\[k_i = \frac{1}{deg_i-\sum_{j \in son_i }k_j},b_i = \frac{ deg_i+\sum_{j \in son_i }b_j}{deg_i-\sum_{j \in son_i }k_j} \]

最后只需要求 \(f_x\),即 \(b_x\)。

萌新从没见过这么神的期望 dp,菜菜。

标签:结点,期望,Luogu,sum,P5643,son,fa,PKUWC2018,deg
From: https://www.cnblogs.com/0922-Blog/p/P5463.html

相关文章

  • Luogu P3978 [TJOI2015] 概率论
    定义\(f_i\)为\(i\)个节点组成的二叉树数量,\(g_i\)为\(i\)个节点组成的二叉树的叶子节点个数之和设当前\(i\)个节点组成的二叉树有\(a\)个叶子,容易发现分别删掉其中的\(1\)个叶子节点就能得到一个对应的\(i-1\)个节点的二叉树,总共会有\(a\)颗,可以发现每一个叶......
  • Luogu P5664 [CSP-S2019] Emiya 家今天的饭
    发现“每种主要食材至多在\(\lfloor\frac{k}{2}\rfloor\)个菜中被使用”有一个性质,在不合法的情况下绝对只有\(1\)个主要食材的个数\(>\lfloor\frac{k}{2}\rfloor\),因为\(k-\lfloor\frac{k}{2}\rfloor-1\le\lfloor\frac{k}{2}\rfloor\)然后就能发现算不合法......
  • 刷题笔记:Luogu P3743
    题目传送门Solution最多能将这些设备一起使用多久,显然答案满足单调性(如果\(x<y\)而不能使用\(x\)时间则一定不能使用\(y\)时间)通俗一点,就是前边的时间不满足则后边一定不满足,也就是局部答案舍弃性,考虑二分时间至于check怎么写呢?和奶牛晒衣服有异曲同工之妙,若设二分出来的时间......
  • 刷题笔记:Luogu P1083 借教室
    题目传送门让结果最接近\(s\)值,显然我们要二分\(w\),check的写法可以直接暴力模拟,如果check(mid)<s则将r右移(通过读公式可以知道\(w\)越小检验值\(y\)就越大)但是这样会TLE,再读一下柿子:\(y_i=\sum\limits_{j=l_i}^{r_i}[w_j\geW]\times\sum\limits_{j=l_i}^{r_i}[w_j\geW]......
  • luogu P8340 [AHOI2022] 山河重整
    题面传送门牛逼题。solution首先来推一推性质。假设我们现在有一个合法的集合,覆盖了\([1,S]\),显然新加进去的数\(i\)不能\(\geqS+2\),而如果\(\leqS+1\)那么\([1,i+S]\)显然可以被覆盖到。因此有一个\(O(n^2)\)的dp:设选到了第\(i\)个数,总和为\(j\),要求\(j\geq......
  • Luogu P5520 [yLOI2019] 青原樱
    考虑先不种花,先算出“花之间空位的可行方案数”\(tot\),乘上花的排列的贡献就能算出答案,即\(tot\timesm!\)为答案所以只需算出“花之间空位的可行方案数”能发现,设\(x_i\)为第\(i\)朵花与第\(i-1\)朵花之间空位的数量,其中设第\(0\)朵花在\(0\)的位置,则发现会有以......
  • luogu P4690 [Ynoi2016] 镜中的昆虫 题解
    P4690[Ynoi2016]镜中的昆虫题解题意维护一个长为 \(n\) 的序列 \(a_i\),有 \(m\) 次操作。将区间 \([l,r]\) 的值修改为 \(x\)。询问区间 \([l,r]\) 出现了多少种不同的数,也就是说同一个数出现多次只算一个。题解感觉这道题还是比较有意思的,像是一堆套路......
  • 【题解】Luogu[P3750] [六省联考 2017] 分手是祝愿
    Link→小清新dp题,纪念自己的700ac(一个点只有两个状态开和不开,且按两下相当于没按,我们可以从大到小有亮的就按一下,如果我们按到了不需要按的键,就需要再按一下使他变回来。设\(f_i\)表示\(i\)个正确选择变为\(i-1\)个的期望操作次数。则有\(\dfrac{i}{n}\)概率按到......
  • 【题解】Luogu[P4900] 食堂
    一到推柿子题。题意即求\(\sum\limits^{n}_{i=1}\sum\limits^{i}_{j=1}\left\{\frac{i}{j}\bmodP\right\}\)对于\(\frac{i}{j}\bmodP\)我们知道即为\(i\)乘上\(j\)的逆元,即为\(i\cdot\mathrm{inv}(j)\)故:\[\begin{aligned}\sum^{n}_{i=1}\sum^{i}_{j=1}\l......
  • 【题解】Luogu[P6003] USACO20JAN Loan Repayment S
    模拟赛第一题(9pts考虑暴力。枚举\(x\),对于每个\(x\),模拟\(k\)天,判断其是否合法,找出最大的\(x\)。时间复杂度:\(O(n^2)\)36pts考虑优化先前暴力算法。我们不难发现当\(x\)合法时,必然有合法\(x_1\),当且仅当\(x_1<x\)。故\(x\)具有单调性,考虑二分答案。对于\(x......