2026.3.28 NOI 模拟赛 题解
T1 NFLS #P13152. 树
令 \(f_{x,y}\) 表示子树 \(x\) 和 \(y\) 内分别去掉一个点的情况下,不考虑两者子树内的点,填 \(p\) 的方案数
\(f_{x,y}\) 可以从 \(f_{fa_x,y}\) 和 \(f_{x,fa_y}\) 转移得到,通过一定预处理可以做到 \(O(n^2)\)
统计答案时,枚举两个结点 \(x,y\),计算 \(|x-y|\) 的贡献,即两者在 \(pos\) 中相邻的方案数,可以由 \(f\) 得到
总时间复杂度 \(O(n^2)\)
T2 NFLS #P13222. 最小生成森林边权和
用 P1117 [NOI2016] 优秀的拆分 的方式将图转化为 \(O(n\ln n)\) 组 \((l,r,k,w)\),表示 \(\forall l\le i\le r\),\(i\) 和 \(i+k\) 连边权 \(w\) 的边
用 P3295 [SCOI2016] 萌萌哒 的方式 \(\text{ST}\) 表优化建图,从上到下求出 \(\text{MST}\) 后将 \(\text{MST}\) 中边加入下一层
时间复杂度 \(O(n\log^2 n+n\alpha(n)\log n)\)
使用基排可以做到 \(O(n\alpha(n)\log n)\)
T3 NFLS #P13149. 耐火
比赛结果
\(0+100+15\),\(\text{rk}19\)

浙公网安备 33010602011771号