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\) 的删掉。

posted @ 2025-08-25 10:23  Dtwww  阅读(5)  评论(0)    收藏  举报