2026.1.21 NOI 模拟赛 题解
T1 P130341 [省选二十连测第十五套 ] --T1--模块
题意
给定 \(h_{1\sim n}\),令 \(F(a_{1\sim m})=\sum_{i=1}^m (\min(\max a_{1\sim i},\max a_{i\sim m})-a_i)\),初始每个 \(h_i\) 为一段,每次给定一组相邻段合并,求每次合并后得到段的 \(F\),\(n\le 10^5\)
分析
每段维护最大值,及最大值左右两侧的单调栈,合并时将小的暴力插入大的
时间复杂度 \(O(n\log n)\)
T2 P130342 [省选二十连测第十五套 ] --T2--网格
题意
一个 \(3\times n\) 的 \(0/1\) 网格,每次翻转一个位置,或给定列的一个区间查询子矩形中填 \(1\times 2\)(可旋转)的骨牌(不要求填满,只能填在 \(0\) 位置,不可重叠)的方案数,\(n,q\le 30000\)
分析
\(\text{DDP}\) 模板,时间复杂度 \(O(n+q\log n)\)
T3 P130343 [省选二十连测第十五套 ] --T3--矩阵
题意
一个 \(n\times m\) 的矩阵,每操作一个位置,它左右和上方的位置也会变化,\(q\) 次询问,每次给定 \(1\le l\le k\le r\le n\),取出第 \(l\sim r\) 行,通过若干次操作使之归零(不修改超出范围的位置,每个位置至多操作一次),求第 \(k\) 行的操作次数或判定无解或解不唯一,\(n\le 5\times10^4,m\le 50,q\le5\times10^5\)
分析
从 \(r\) 到 \(l\) 扫描,容易高斯消元得到这一行的操作情况,若一次高斯消元无解或解不唯一则整个局面无解或解不唯一
每次的线性方程组左侧为固定的 \(M\),右侧为题目给定的矩阵第 \(i\) 行异或上一行的操作位置
若 \(M\) 不可逆则所有操作都无解或解不唯一,否则求出 \(M^{-1}\),令 \(a_i\) 表示题目给定的矩阵第 \(i\) 行
第 \(k\) 行的操作情况为 \(\sum_{i=k}^r (M^{-1})^{i-k+1} a_i\),拆为 \(M^{k-1} \times \sum_{i=k}^r (M^{-1})^i a_i\),两部分容易维护
时间复杂度 \(O(nm^2+qm)\)
比赛结果
\(100+100+30\),\(\text{rk}4\)

浙公网安备 33010602011771号