20250825 曹队讲课
https://www.luogu.com.cn/training/838962#problems
T1
考虑全 ? 怎么做。
经典套路:左括号看成 \(1\),右括号 \(-1\)。
然后合法的括号串是 \(s_i \ge 0 \land s_n = 0\)。
把所有 ? 看成 ),然后每奇数位置就要选一个 ( 出来。
比如前 \(1\) 个选出 \(1\) 个,然后前 \(3\) 个再选一个,以此类推。
然后这个可以用优先队列实现选最小的。
那有左右括号的情况我们只需要把他们的权值设为 \(0\),另一个设为 \(inf\) 即可。
T2
由于颜色数 \(\leq 100\)。
考虑把“对序列的区间修改颜色”改成“对颜色上的区间修改”。
然后就是考虑对于每个颜色动态开一颗线段树维护。
然后如果可以递归到底,就说明这个数是这个颜色。
然后修改的时候直接在 \(x\) 上找到那个区间,然后合并到 \(y\) 上即可,把 \(x\) 的删掉。

浙公网安备 33010602011771号