第十二次

最阴间的一场

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$。

posted @ 2023-08-02 19:53  5k_sync_closer  阅读(6)  评论(0编辑  收藏  举报  来源