Loading

12.12 CW 模拟赛 T3. 消除贫困

思路

朴素

容易发现一个人资金变化是这样的:

  1. 对于 \(op = 1\) 的情况, 会将其直接变成 \(x\)
  2. 对于 \(op = 2\) 的情况, 将其变成 \(\max (x, 当前值)\)

直接用线段树暴力的维护即可

巧妙

容易发现 \(op = 2\) 相当于一个大保底, 我们先倒着处理出每个人到 \(i\) 位置至少有多少钱

特别的, 正着搜一遍, 如果发现一个 \(op = 1\) 的操作, 那么当前的人持有的钱就是 \(i\) 后面的大保底和当前钱数的大值

总结

善于利用 \(\rm{lazy \ tag}\)

正反两边一起搜可以解决一类特殊问题

对于一种操作会清空另一种操作的特殊 \(\rm{trick}\) :
先维护倒着被清空这种操作, 然后顺着做, 可以考虑到后面的情况

posted @ 2024-12-12 19:39  Yorg  阅读(3)  评论(0编辑  收藏  举报