MinMax容斥将问题转化为求x到S中任意点的最小时间. 树形DP,直接求概率比较困难,考虑只求系数.最后由于x节点作为树根无父亲,所以求出的第二个系数就是答案. https://blog.csdn.net/dearbaba_8520/article/details/80556499 $O((n+q)2^n)$ #include<cstdio> #include<algorithm> #define rep(i,l,r) for (int i=(l); i<=(r); i++…
传送门 那么除了D1T3,PKUWC2018就更完了(斗地主这种全场0分的题怎么会做啊) 发现我们要求的是所有点中到达时间的最大值的期望,\(n\)又很小,考虑min-max容斥 那么我们要求从\(x\)走到第一个属于某个子集\(S\)的节点的步数期望,这是一个经典的树上高斯消元问题. 将树设为以\(x\)为根,设\(f_{i , S}\)为从第\(i\)个点随机游走到达点集\(S\)任意一个点停止,行走步数的期望,转移: \(1.i \in S: f_{i , S}=0\) \(2.i \no…
题意 题目链接 Sol 考虑直接对询问的集合做MinMax容斥 设\(f[i][sta]\)表示从\(i\)到集合\(sta\)中任意一点的最小期望步数 按照树上高斯消元的套路,我们可以把转移写成\(f[x] = a_x f[fa] + b_x\)的形式 然后直接推就可以了 更详细的题解 #include<bits/stdc++.h> #define LL long long using namespace std; const int MAXN = 1e6 + 10, mod = 99824…
题目传送门 https://loj.ac/problem/2542 题解 肯定一眼 MinMax 容斥吧. 然后问题就转化为,给定一个集合 \(S\),问期望情况下多少步可以走到 \(S\) 中的点. 考虑 dp 的话,令 \(dp[x]\) 表示从 \(x\) 开始走的答案. 如果 \(x \in S\),那么 \(dp[x] = 0\): 否则,\(dp[x] = 1 + \frac{\sum\limits_{(x, y) \in T} dp[y]}{deg_x}\). 这个东西直接树上高斯…
题目描述 有一棵 \(n\) 个点的树.你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(q\) 次询问,每次询问给定一个集合 \(S\),求如果从 \(x\) 出发一直随机游走,直到点集 \(S\) 中所有点都至少经过一次的话,期望游走几步. 特别地,点 \(x\)(即起点)视为一开始就被经过了一次. 答案对 \(998244353\) 取模. 题解 这道题要求点集 \(S\) 中所有点都至少经过一次的期望步数,直接做不好做,要先用一个 min-max 容斥转换…
搞了一下午 真的是啥都不会 首先这道题要用到Min-Max容斥 得到的结论是 设 $Max(S)$表示集合里最晚被访问的节点被访问的期望步数 设 $Min(S)$表示集合里最早被访问的节点被访问的期望步数 那么$ Max(S) = ∑_{T \in S} {-1^ { \lvert T \rvert+1} }Min(T)$ (这个相关的证明和理解可以看看HDU4336 附一个题解) 考虑对于一个集合$S$如何计算$Min(S)$ 记$d_u$为点$u$的度数 当$u\notin S \space…
如果直接dp,状态里肯定要带上已走过的点的集合,感觉上不太好做. 考虑一种对期望的minmax容斥:其中Max(S)为遍历完S集合的期望步数,Min(S)为遍历到S集合中一个点的期望步数.当然才不管怎么证,反正看上去非常优美. 设f[i][S]为由i节点出发的Min(S),显然有f[i][S]=Σf[j][S]/di+1.暴力高斯消元复杂度就炸掉了. 注意到给出的是一棵树,现在连这个性质都没用到当然没法做.根据一个我没见过的套路,可以考虑把f[i]表示成a·f[fa]+b的形式,大力推一波式子就…
[LOJ#2542][PKUWC2018]随机游走(min-max容斥,动态规划) 题面 LOJ 题解 很明显,要求的东西可以很容易的进行\(min-max\)容斥,那么转为求集合的\(min\). 那么怎么求解每个集合的\(min\)呢. 显然以起点为根节点,如果点集中一个点在另外一个点的子树内,显然不需要考虑,索性丢掉.考虑剩下的点,把他们的子树丢掉(要访问子树肯定要访问到某个点),那么剩下的点直接扣下来做一个高斯消元就可以求出到达每个点的期望,那么\(min\)就求出来. 设\(f[S]\…
很好很有趣很神仙的题! 题目链接: https://loj.ac/problem/2542 题意: 请自行阅读 题解首先我们显然要求的是几个随机变量的最大值的期望(不是期望的最大值),然后这玩意很难求,根据Min-Max容斥化成最小值的期望来求. Minn-max容斥是指\(\max(x_1,x_2,...,x_n)=\sum_{S\in \{1,2,...,n\} } (-1)^{|S|-1} \min_{i\in S}(x_i)\) (所有元素都是正整数,这个尽管式子本身和期望没关系但是经常…
点此看题面 大致题意: 从一个给定点出发,在一棵树上随机游走,对于相邻的每个点均有\(\frac 1{deg}\)的概率前往.多组询问,每次给出一个点集,求期望经过多少步能够访问过点集内所有点至少一次. \(Min-Max\)容斥 访问过每个点至少一次,显然不是什么好处理的东西. 我们考虑一个叫\(Min-Max\)容斥的东西. 关于\(Min-Max\)容斥,有这样一个公式: \[E(max(S))=\sum_{T∈S}(-1)^{|T|+1}E(min(T))\] 套到这题,\(E(max(…