Loading

模拟赛11.10 解题报告

T1 进步科学

题意:一棵树,一开始所有点都是白的。每一时刻你可以选择一个点,将他颜色取反(黑白变化),然后下一时刻其父亲颜色取反,下下一时刻其父亲的父亲颜色取反……给出最后的局面,求至少需要多少时刻达成,注意最后的局面不一定是稳定的,即下一时刻可能有点颜色改变

\(1\le n\le 16\)

艹,空间开小爆瓜 50pts

枚举倒数第几时刻,操作的是哪个点。

\(f[i,j]=0/1\) 为考虑了倒数第 \(i\) 时刻,当前点的黑白状态为 \(j\),是否能到达这样的局面。

每次枚举操作的点 \(u\),设 \(msk[u,i]\) 表示倒数第 \(i\) 时刻操作点 \(u\) 时颜色发生改变的点集。

直接搞即可,时间复杂度 \(O(2^nn^2)\)

T2 吉吉没急

题意:\(n\) 个点,初始时 \(1\) 号点是黑的,其他是白的。有 \(m\) 次操作,第 \(i\) 次发生在 \([L_i,R_i]\) 的某一天,当天若 \(u_i,v_i\) 中有一个是黑的,或者有一个恰好在当天变黑,那么另一个也会变黑。给出 \(n\) 个点最终的状态:黑、白、不确定,判断是否存在这样的结果。

\(1\le n\le 200000,\space 1\le L_i\le R_i\le 10^9\)

直接求一个点的最早变黑时间是不行的,因为这样可能导致一些最终状态为白的点变黑。

因此每个点变黑的时间应该有个限制,设点 \(i\) 应在 \([d_i,+\infty]\) 时间段变黑。对于最终状态为白的点 \(i\),有 \(d_i=+\infty\)

考虑最短路更新这个过程。当前取出 \(u\),对于每条边 \((u,v,L,R)\),若 \(d_u>R\),说明点 \(v\)\([L,R]\) 中至少存在一天为白色,贪心选择第 \(L\) 天,则 \(d_v\leftarrow \max(d_v,L+1)\)。可以迪杰斯特拉。

处理出限制后,再求出 \(f_u\) 表示一个点最早可能的变黑时间,且满足 \(f_u\ge d_u\),同样可以直接最短路。

时间复杂度 \(O(m\log m)\)

T3 老杰克哒

题意:一个 \(01\) 串,每次修改一个位置上的值,或者查询 \([l,r]\):把第 \(l\)\(r\) 位上的数连起来组成一个二进制数,每次选择一个 \(k\),将这个数 \(+2^k\)\(-2^k\),任意时刻非负,求最小操作次数。

一眼动态 dp 板子。

考虑一个序列的做法,设 \(f[i,0/1]\) 表示把 \(1...i\) 位全部变成 \(0\),并且是/否往高位进 \(1\) 的最小操作数。

写成矩阵乘法的形式

\[\begin{bmatrix} f[i,0] & f[i,1] \end{bmatrix} \times \begin{bmatrix} ..&..\\ ..&..\end{bmatrix} \rightarrow \begin{bmatrix} f[i+1,0] & f[i+1,1] \end{bmatrix} \]

  • \(s_{i+1}=0\)

\[\begin{bmatrix} 0 & 2\\ 1 & 1 \end{bmatrix} \]

  • \(s_{i+1}=1\)

\[\begin{bmatrix} 1 & 1\\ 2 & 0 \end{bmatrix} \]

随便拿个线段树维护一下即可,时间复杂度 \(O((n+q)\log n)\),有个 \(8\) 倍的常数。

T4 季积晓淆

题意:树上随机游走。一棵树,初始时你在其中一个点上。若当前在点 \(u\) 上,则你有 \(p_u\) 的概率停留,有 \(1-p_u\) 的概率等概率走向一个连边的点,走到点 \(1\) 后停止。求时间的 \(k\) 次方的期望值,模 \(998244353\)

\(1\le n,k\le 10^5,\space 1\le nk\le 10^6\)

考虑 \(k=1\) 怎么做,设 \(f[u]\) 表示从 \(u\) 成功走到 \(fa_u\) 的期望步数。

那么

\[f[u]=1+p_u\cdot f[u]+\frac{1-p_u}{deg(u)}\cdot f[u]\sum_{v\in son(u)} f[v] \]

随便推推即可。

考虑 \(k>1\)

根据二项式定理,设 \(w\) 为过一单位时间之后花费的时间,与当前花费的一单位时间合并

\[(w+1)^k=\sum_{i=0}^k {k\choose i}w^i \]

这是两个 EGF 乘积的形式,\(e^{(w+1)x}=e^{wx}\cdot e^x\)

给每个时间单位赋权值 \(e^x\),我们相当于求所有时间单位权值乘积的期望值。

构造指数生成函数 \(F_u(x)=f[u,0]+f[u,1]\frac{x}{1!}+f[u,2]\frac{x^2}{2!}+f[u,3]\frac{x^3}{3!}+...+f[u,k]\frac{x^k}{k!}\)

即从 \(u\) 走到 \(fa_u\) 这段时间的 \(e^x\) 乘积的期望值。

\(G(x)=\sum_{i=0}^k \frac{x^i}{i!}\equiv e^x\pmod {x^{k+1}}\)

\[F_u(x)\equiv G(x)(F_u(x)\cdot p_u+\frac{1-p_u}{deg(u)}(\sum_{v\in son(u)}F_v(x)+1))\pmod{x^{k+1}} \]

后面有个 \(+1\) 是因为从 \(u\) 直接走到 \(fa_u\) 也有贡献,为 \(\frac{1-p_u}{deg(u)}G(x)\)

推一推式子

\[F_u(x)\equiv F_u(x)G(x)\cdot p_u+\frac{1-p_u}{deg(u)}F_u(x)G(x)\sum_{v\in son(u)}F_v(x)+\frac{1-p_u}{deg(u)}G(x)\pmod {x^{k+1}} \]

\[(1-p_uG(x)-\frac{1-p_u}{deg(u)}G(x)\sum_{v\in son(u)}F_v(x))F_u(x)\equiv \frac{1-p_u}{deg(u)}G(x) \pmod {x^{k+1}} \]

\[F_u(x)\equiv \frac{\frac{1-p_u}{deg(u)}G(x)}{1-p_uG(x)-\frac{1-p_u}{deg(u)}G(x)\sum_{v\in son(u)}F_v(x)} \]

剩下的就是多项式卷积、求逆的事了。时间复杂度 \(O(nk\log^2 k)\),卡常可过。

我也没想到常数不大

posted @ 2023-11-10 15:18  Lgx_Q  阅读(45)  评论(0编辑  收藏  举报