梦熊提高组第 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
选了跟没选一样。
所以类似于一个抽象版的最大字段和。