∆ A. 特种训练 (train)
写不来这种 Ad-hoc 题.
∆ B. 红色改造 (modification)
可以参考论文 万成章 - Astral Birth 解题报告
把相同连续段合并起来, 将原 序列转化成一个由二元组 组成的长度为 的序列, 问题有转化一:
- 选出尽量长的子序列, 其段数不超过 ( 的原因是贡献分为三种, 打过朴素的 DP 都知道), 则子序列长度和为答案.
倒过来考虑, 我们需要从中选择一些元素删去, 有以下的 Observation:
- Observation 1: 我们不会删除相邻的元素.
那么有转化二:
- 对于每个 , 选择一些价值之和为 的元素并将它们删除, 要求元素两两不相邻, 且长度之和最小. 元素的价值就是 或 , 第一个和最后一个元素的价值为 , 其余为 .
然后就是一个经典的反悔贪心问题.
∆ D. 车站爆破 (bomb)
居然可以维护操作序列... 还是见识浅薄...