2025.12.9 NOI 模拟赛 题解

比赛

订正

T1 P130180 [省选二十连测第三套 ] --T1 \(\quad\) \(\textcolor{purple}\odot\) P10054 [CCO 2022] Phone Plans

题意

给定两张图 \(A,B\),令 \(f_A(w)\) 表示只保留图 \(A\) 中边权 \(\le w\) 的边后连通的点对集合,求 \(|f_A(p)\cup f_B(q)|\ge k\)\(p+q\) 的最小值,\(n\le 2\times10^5\)

分析

先求出两张图的最小生成树,剩余边权数量为 \(O(n)\) 的,显然 \(p,q\) 必然取已有边权之一,容易在求 \(\text{MST}\) 过程中对这些 \(p,q\) 求出 \(|f_A(p)|\)\(|f_B(q)|\)

从小到大枚举 \(p\)\(q\) 双指针减小,设目前为止 \(f_B(q)\) 对应的 \(i\) 所属连通块为 \(v_i\),则目前的 \(|f_A(p)\cap f_B(q)|\) 等于所属 \(f_A(p)\) 中同一连通块且 \(v\) 相同的点对数量

启发式合并 \(B\) 过程中预处理 \(v\) 的修改情况,逆序考虑,可以改为 \(O(n\log n)\)\(v_i\) 的单点修改

双指针过程中对 \(f_A(p)\) 启发式合并,每个连通块中维护一个 map 保存每个 \(v\) 的数量

容易做到 \(O(m\alpha(n)+n\log^2 n)\)

MX

luogu

T2 P130181 [省选二十连测第三套 ] --T2 \(\quad\) \(\textcolor{black}\odot\) P9867 [POI 2021/2022 R2] kon

题意

一张无向图,初始两个结点 \(1\)\(2\) 有边,\(q\) 次操作,给定一已有点,新建一点与之相连,或新建一点与所有 与给定点相连的点 相连,或查询与之相连的点的数量,\(q\le10^6\)

分析

显然为二分图

考虑建立一棵树,每个右部点对应一个非根结点,每个左部点对应树上一条路径 \((bg,ed)\),表示连到路径上所有右部点

初始 \(1\) 为左部点,\(2\) 为右部点,\(2\) 挂在根下,\(1\) 对应根到 \(2\) 的路径

对于操作 \(1\)

  • 若被操作点为左部点,设为 \(l\),设新建点为 \(r\),则令 \(fa_r=ed_l\)\(ed_l=r\)
  • 若被操作点为右部点,设为 \(r\),设新建路径为 \(l\),则令 \(bg_l=a_r,ed_l=r\)

对于操作 \(2\)

  • 若被操作点为左部点,设为 \(l\),设新建路径为 \(l'\),则令 \((bg_{l'},ed_{l'})=(bg_l,ed_l)\)
  • 若被操作点为右部点,设为 \(r\),设新建点为 \(r'\),则令 \(fa_{r'}=fa_r,fa_r=r'\)

对于查询

  • 若查询左部点则等价于查询路径长度
  • 若查询右部点则等价于查询覆盖到这个点到其父亲的边的路径数量

建立最终的树,离线后转化为每次启用一个点并查询直链上启用点的数量,及每次直链加并查询单点值

容易做到 \(O(q\log q)\),若强制在线可用 \(\text{LCT}\)

MX

luogu

参考

T3 P130182 [省选二十连测第三套 ] --T3 \(\quad\) \(\textcolor{black}\odot\) P10106 [GDKOI2023 提高组] 马戏团里你最忙

题意

一个数字初始为 \(x_0\),进行 \(k\) 次操作,第 \(i\) 次等概率随机选择 \(v\in[0,2^n)\)\(x_i\)\(p\) 的概率为 \(v|x_{i-1}\)\(1-p\) 的概率为 \(v\&x_{i-1}\),给定 \(c_{0\sim 2^n-1}\),求 \(\sum_i c_{x_i}\) 的期望,\(n\le17,k\le10^9\)

分析

\(f_{i,j}\) 表示 \(x_i=j\) 的概率,\(g_{i,j}\) 表示 \(\sum_{k=1}^i c_{x_k}\) 的期望,则

\[f_{0,x_0}=1 \]

\[\frac p{2^n} \cdot f_{i-1,j}\to f_{i,j\& x} \]

\[\frac{1-p}{2^n} \cdot f_{i-1,j}\to f_{i,j|x} \]

\[\frac p{2^n} \cdot g_{i-1,j}\to g_{i,j\& x} \]

\[\frac{1-p}{2^n} \cdot g_{i-1,j}\to g_{i,j|x} \]

\[f_{i,x}c_x\to g_{i,x} \]

\(f_i=Af_{i-1}\),则 \(g_i=Ag_{i-1}+c\cdot f_i=A g_{i-1}+cAf_{i-1}\)

对于 \(X\in \R^{2\times 2}\),定义 \((X^{\oplus n})_{i,j}=\prod_{x=1}^n X_{i(x),j(x)}\),其中 \(i(x)\) 表示二进制下 \(i\) 的第 \(x\)

\(X=\begin{bmatrix}1&\frac12\\0&\frac12\end{bmatrix}\)\(Y=\begin{bmatrix}\frac12&0\\ \frac12&1\end{bmatrix}\),则 \(A=X^{\oplus n}\cdot p+Y^{\oplus n}\cdot (1-p)\)

由于

\[\begin{bmatrix} f_i\\ g_i\end{bmatrix}=\begin{bmatrix}A&0\\ cA&A\end{bmatrix}\begin{bmatrix} f_{i-1}\\ g_{i-1}\end{bmatrix} \]

\(v_i=\begin{bmatrix} f_i\\ g_i\end{bmatrix}\)\(\tau=\begin{bmatrix}A&0\\ cA&A\end{bmatrix}\),则 \(v_i=\tau v_{i-1}\)

\(v_0\) 是显然的,而答案需要从 \(v_k\) 得到,因此问题转化为快速求出 \(\tau^k\)

构造 \(Z=\begin{bmatrix}1&1\\1&-1\end{bmatrix}\),令

\[X'=Z^{-1}XZ=\begin{bmatrix} 1 & 0 \\ \frac{1}{2} & \frac{1}{2} \end{bmatrix} \]

\[Y'=Z^{-1}YZ=\begin{bmatrix} 1 & 0 \\ -\frac{1}{2} & \frac{1}{2} \end{bmatrix} \]

\[\begin{aligned} A'=(Z^{\oplus n})^{-1}AZ^{\oplus n}=&p(Z^{\oplus n})^{-1}X^{\oplus n}Z^{\oplus n}+(1-p)(Z^{\oplus n})^{-1}Y^{\oplus n}Z^{\oplus n}\\ =&p(Z^{-1}XZ)^{\oplus n}+(1-p)(Z^{-1}YZ)^{\oplus n}\\ =&pX'^{\oplus n}+(1-p)Y'^{\oplus n}\\ \end{aligned} \]

由于 \(X',Y'\) 都是下三角矩阵,因此 \(A'\) 为下三角矩阵

\(A'\) 对角线上的元素必然为 \(2^{-x}(0\le x\le n)\),因此必然存在 \(r_{0\sim n}\) 使得 \(A\) 的最小多项式 \(m_A(x)=m_{A'}(x)=\prod_{i=0}^n (x-2^{-i})^{r_i}\)

可证 \(A'\) 可对角化,因此 \(r_i=1\),即

\[m_A(x)=\prod_{i=0}^n (x-2^{-i}) \]

\(m_A(\tau)=\begin{bmatrix} 0 & 0 \\ B' & 0 \end{bmatrix}\),则 \((m_A(\tau))^2=0\),即 \(m_{\tau}(x)\)\(m_A^2(x)=\prod_{i=0}^n (x-2^{-i})^2\) 的因子

求出 \(Q(x)=x^k \bmod m_A^2(x)\),则 \((\tau^kv_0)_i=\sum_j [x^j]Q \cdot v_{j,i}\)

\(\deg Q=2n+2\),因此 \(O(n^22^n)\) 求出 \(v_{0\sim 2n+1}\),而后 \(O(n^2\log k)\) 求出 \(Q\),即可求出 \(v_k\)

时间复杂度 \(O(n^22^n+n^2\log k)\)

MX

luogu

参考

比赛结果

\(68+30+30\)\(\text{rk}2\)

posted @ 2025-12-12 15:17  Hstry  阅读(14)  评论(0)    收藏  举报