LOJ2542. 「PKUWC2018」随机游走 https://loj.ac/problem/2542 分析: 为了学习最值反演而做的这道题~ \(max{S}=\sum\limits_{T\subseteq S}(-1)^{|T|-1}min{T}\) 考虑排序后的\(a\)序列. \(\sum\limits_{T\subseteq S}(-1)^{|T|-1}min{T}=\sum\limits_{i=1}^na_i\sum\limits_{j=0}^{n-i}(-1)^j\binom{n…
题目描述 给定一棵 nn 个结点的树,你从点 xx 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 QQ 次询问,每次询问给定一个集合 SS,求如果从 xx 出发一直随机游走,直到点集 SS 中所有点都至少经过一次的话,期望游走几步. 特别地,点 xx(即起点)视为一开始就被经过了一次. 答案对 998244353998244353 取模. 输入格式 第一行三个正整数 n,Q,xn,Q,x. 接下来 n-1n−1 行,每行两个正整数 (u,v)(u,v) 描述一条树边. 接下来 QQ …
题目链接 loj2542 题解 设\(f[i][S]\)表示从\(i\)节点出发,走完\(S\)集合中的点的期望步数 记\(de[i]\)为\(i\)的度数,\(E\)为边集,我们很容易写出状态转移方程 ①若\(i \notin S\) \[f[i][S] = \frac{1}{de[i]}\sum\limits_{(i,j) \in E}(f[j][S] + 1)\] ②若\(i \in S\) 除非\(\{i\} = S\),\(f[i][S] = 0\) 否则 \[f[i][S] = \f…
题面 思路 我们可以把到每个点的期望步数算出来取max?但是直接算显然是不行的 那就可以用Min-Max来容斥一下 设\(g_{s}\)是从x到s中任意一个点的最小步数 设\(f_{s}\)是从x到s中任意一个点的最大步数 然后就可以的得到 \(f_{s}=\sum_{t\subseteq s}(-1)^{|t|+1}g_t\) 然后考虑g怎么求 设\(p_i\)是i点到任意一个子集中的点的最小步数 有\(p_u=\frac{1}{du_u}(1+p_{fa_u})+\frac{1}{du_u}…
题目传送门 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}\). 这个东西直接树上高斯…
题意 题目链接 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…
「PKUWC2018」随机游走(min-max容斥+FWT) 以后题目都换成这种「」形式啦,我觉得好看. 做过重返现世的应该看到就想到 \(min-max\) 容斥了吧. 没错,我是先学扩展形式再学特殊形式的. \[E(\text{max}(S))=\sum_{T\subseteq S}(-1)^{|T|+1}E(\text{min}(T))\] 问题转化之后,然后我们可以枚举所有状态然后 \(O(n)\) 树形 \(dp\) \(-1\) 那项可以 \(O(2^n)\) 推出来,接下来就是子集…
Loj #2542. 「PKUWC2018」随机游走 题目描述 给定一棵 \(n\) 个结点的树,你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(Q\) 次询问,每次询问给定一个集合 \(S\),求如果从 \(x\) 出发一直随机游走,直到点集 \(S\) 中所有点都至少经过一次的话,期望游走几步. 特别地,点 \(x\)(即起点)视为一开始就被经过了一次. 答案对 $998244353 $ 取模. 输入格式 第一行三个正整数 \(n,Q,x\). 接下来 \(…
题意 给定一棵 \(n\) 个结点的树,你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(Q\) 次询问,每次询问给定一个集合 \(S\),求如果从 \(x\) 出发一直随机游走,直到点集 \(S\) 中所有点都至少经过一次的话,期望游走几步. \(1\leq n\leq 18\),\(1\leq Q\leq 5000\) . Solution 题意即为求集合中最后一个点被访问的期望时间.考虑 \(\text{min-max}\) 容斥,转化为第一个点被访问的期望…
$ Min$-$Max$容斥真好用 $ PKUWC$滚粗后这题一直在$ todolist$里 今天才补掉..还要更加努力啊.. LOJ #2542 题意:给一棵不超过$ 18$个节点的树,$ 5000$次询问,每次问从根随机游走走遍一个集合的期望步数 $ Solution:$ 考虑$ Min$-$Max$容斥 有$ Max(S)=\sum\limits_{T \subseteq S}(-1)^{|T|+1}Min(T)$ 其中$ S,T$是一个集合,$Max(S)$表示$ S$中最大元素,$Mi…