2026.3.30 NOI 模拟赛 题解

比赛

T1 NFLS #36321. 升

\(dp_{h,l,r,o}\) 表示令 \(b[l:r]\) 都在 \([o,o+2^h)\) 范围内的方案

转移时枚举分割点 \(k\)\([l,k]\)\(h\) 位填 \(0\)\((k,r]\)\(h\) 位填 \(1\),然后转化为子问题

对于 \([o,o+2^h)\) 完全包含于 \([L_i,R_i]_{i=l}^r\) 的情况,特别地令 \(o=-1\)

剪枝存在一个 \([L,R]\)\([o,o+2^h)\) 无交的情况和 \(l>r\) 的情况

可证状态数为 \(\text{Poly}\)

实际复杂度应该为 \(O(n^4\log V\log n)\)(其中 \(\log n\) 为使用 map 存状态的复杂度)到 \(O(n^3\log V)\)

代码

实际上最后一维可以替换为两个 \(0/1\) 变量分别表示是否触及上下界,时间复杂度 \(O(n^3\log V)\)

T2 NFLS #36322. 众

每个左部点建立一个点,右部点拆为两个点,每条边拆为左部点和两个右部点之间的连边,对应右部点之间也连边,则答案为新图的最大匹配减去 \(m\)

使用带花树算法可以通过原题

代码

复杂度正确的方法

T3 NFLS #36323. 串

比赛结果

\(100+25+8\)\(\text{rk}18\)

posted @ 2026-03-30 19:18  Hstry  阅读(0)  评论(0)    收藏  举报