做题记录 26.2.5
\(\textcolor{black}\odot\) P14450 [ICPC 2025 Xi'an R] Directed Acyclic Graph
考虑建立一个 \(d\times w\) 的矩形,\(a_{i,j}\) 表示其中 \((i,j)\) 的点,\(a_{i,j}\to a_{i+1,j}\)
令 \(b_{i,j}\) 连向 \(a_{i,\ne j}\) 和 \(a_{>i,j}\),用前后缀优化建图
点 \(1\) 连向所有 \(b_{1,i}\) 和剩余散点
选择 \(b_{1\sim d,j}\) 及不选可以实现 \(a_{\ast,j}\) 的 \(d+1\) 个前缀,每一列都是独立的,从而一共 \((d+1)^w\) 种子集
取 \(d=3,w=7\) 即可,精细实现可以做到 \(128\) 条边
\(\textcolor{purple}\odot\) P14009 「florr IO Round 1」数字游戏
转化为求
对 \(d\) 扫描线,则 \(\left\lfloor\frac{a_i}d\right\rfloor\) 总变化量为 \(O(n\sqrt V)\) 的,容易矩阵维护 \(\sum_{1\le l\le r\le n} \prod_{i=l}^r \left\lfloor\frac{a_i}d\right\rfloor\),时间复杂度 \(O(n\sqrt V\log n)\),常数较大
注意到修改集中在 \(d\) 较小时,设 \(d\le S\) 时暴力重构,则时间复杂度 \(O(Sn+n\frac VS\log n)\),取 \(S=O(\sqrt{V\log n})\) 可以做到 \(O(n\sqrt{V\log n})\)
可以提取矩阵有效位置减小常数
\(\textcolor{purple}\odot\) P12729 [KOI 2021 Round 2] 最长公共括号子串
二分答案,设目前长度为 \(L\),尝试对 \(a\) 和 \(b\) 的每个前缀求出最短的长度 \(\ge L\) 的合法后缀,则转化为判断两者的哈希序列是否有相同项,排序后容易判定,以下只考虑对 \(a\) 求解
预处理 \(a\) 的深度序列 \(d\)(一个位置的深度定义为其前缀中 \('('\) 数量减去 \(')'\) 数量),对每个 \(i\) 预处理 \(d_i\) 后面第一个相同的位置 \(nx_i\) 和前面第一个小于的位置 \(l_p\)
对于一个目标长度 \(L\),从前往后扫描右端点,对于每个深度 \(x\) 维护距离当前右端点 \(\ge L\) 且深度 \(=x\) 的点中最靠后的一个,扫到 \(d_i\) 时容易 \(O(1)\) 判定对应项是否合法
时间复杂度 \(O(\sum n\log^2 n)\),其中 \(n=|A|+|B|\),精细实现可以做到 \(O(\sum n\log n)\)

浙公网安备 33010602011771号