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)\)
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}\)
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_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)\)
由于
令 \(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',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(\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)\)
比赛结果
\(68+30+30\),\(\text{rk}2\)

浙公网安备 33010602011771号