第十二次
最阴间的一场
A
设 $f_{i,0/1}$ 表示交换 $i$ 次,$1$ 在 / 不在原位的概率,
则 $f_{i,0}=\dfrac{(n^2-2)f_{i-1,0}}{n^2}+\dfrac{(2n-2)f_{i-1,1}}{n^2},f_{i,1}=\dfrac{2f_{i-1,0}}{n^2}+\dfrac{(n^2-2n+2)f_{i-1,1}}{n^2}$。
手动模拟一遍四种情况,容易理解。
发现 $f_i$ 只由 $f_{i-1}$ 转移,矩阵快速幂优化之。
B
我觉得这个才是本场签到题啊……大家好像都会动态 DP,咋就我不会
考虑单次询问怎么做,设 $f_{i,j}$ 表示文本串 $S$ 长度为 $i$ 的前缀中,模式串 $T=\texttt{helloworld}$ 长度为 $j$ 的前缀作为子序列的期望出现次数,
则 $f_{i,j}=f_{i-1,j}+f_{i-1,j-1}\times P(S_i=T_j)$,其中 $P(X)$ 表示事件 $X$ 发生的概率。
发现 $f_i$ 只由 $f_{i-1}$ 转移,于是可以找到转移矩阵 $M_i$ 使得 $f_i=f_{i-1}\times M_i$,
则询问 $[l,r]$ 时,有 $f_{|S|}=f_0\times\prod\limits_{i=l}^rM_i$,答案即为 $f_{|S|,|T|}$。
线段树维护区间矩阵乘积即可。
卡常卡不过去的话,可以把 #
改成 %:
加火车头。
C
设 $f_{i,j,x,y}$ 表示把 $[i,j]$ 内卡牌变成一张 $(x,y)$,过程中能得到的最大收益,
$g_{i,j}$ 表示把 $[i,j]$ 内卡牌删空,过程中能得到的最大收益,
则 $f_{i,j,x,y}=\max\limits_{k=i}^{j-1}\{f_{i,k,x,y}+g_{k+1,j},g_{i,k}+f_{k+1,j,x,y},f_{i,k,x,y-1}+f_{k+1,j,x,y-1}\}$,
$g_{i,j}=\max\limits_{x\le m,y\le R}f_{i,j,x,y}+V_x\times P^{y-1}$。
答案即为 $g_{1,n}$。
D
结论:$\text{SG}(u)=\bigoplus\limits_{v\in\text{son}(u)}\text{SG}(v)+1$。
证明:把 $u$ 子树复制 $|\text{son}(u)|$ 份,每份 $u$ 下面只接一个儿子。
若删去这个儿子的子树,接下来只能删根,此后继状态的 $\text{SG}$ 值为 $0$。
否则删去这个儿子的子树内部的子树,变为规模更小的子问题,
而规模最小的子问题的 $\text{SG}$ 值为 $0$,规模次小的子问题的 $\text{SG}$ 值为 $\operatorname{mex}\{0\}=1$,规模次次小的子问题的 $\text{SG}$ 值为 $\operatorname{mex}\{0,1\}=2$……
可知原问题的 $\text{SG}$ 值为 $\text{SG}(v)+1$,而 $u$ 子树的 $\text{SG}$ 值就是这些 $\text{SG}$ 值的异或和。
需要求以每个点为根的 $\text{SG}$ 值,换根一下。概率就是 $\dfrac{\sum\limits_{i=1}^n[\text{SG}(i)\ne 0]}n$。