梦熊提高组第 4 场

P11217 【MX-S4-T1】「yyOI R2」youyou 的垃圾桶

每次把 \([l, r]\) 的所有数 \(+d\), 求最多的攻击次数。

用线段树维护,然后二分枚举也可以全部攻击的次数,再在线段树上二分。

  • 如果左子树的大小超过 \(k\),则在左子树查找
  • 否则在右子树查询 \(k-sum_{左子树}\)

代码较为抽象,推荐阅读


P11218 【MX-S4-T2】「yyOI R2」youyou 不喜欢夏天

给定 \(2\times n\) 的矩阵,先手选择一个联通块(颜色可以不同,可以为空),后手可以选择 \(\le m\)

  • 考虑到矩阵只有 \(2\) 行。所以这道题非常简单。
  • 首先考虑先手:
    • 11 那么先手一定会去选
    • 10 那么要么选 1 要么选 10
    • 00 为了和前面连上最多选 \(1\)
  • 考虑后手
    • 11 选了跟没选一样。
    • 10 如果选了 1 那么会反转
    • 00 选了跟没选一样。

所以类似于一个抽象版的最大字段和。

posted @ 2024-10-21 19:31  qmwneb946  阅读(14)  评论(0编辑  收藏  举报