AGC028E High Elements
题意:给出一个长度为
称一个长度为
初始时有两个空序列
求字典序最小的合法字符串
考虑经典的按位贪心:从前往后处理,每次判定填
问题转化为对
记
不难发现,对于
性质:对于一个确定的前缀
,若存在合法的补完方案,则一定有一种方案满足 或者 。 其中
指 新增的前缀最大值。 证明:
若存在
,满足 ,考虑将两者交换,注意到使得 在 中不为前缀最大值的元素一定存在于 (另一个序列)中,所以交换后两者都不再是前缀最大值。 的前缀最大值个数同时减一,仍然满足条件。可以不断进行该类交换,即可得到满足性质的解。
(这里利用了判定子问题的特性,按需推理。若直接考虑刻画答案的性质,则较为吃力)
现在我们已经填写了
分别考虑
记目前
设
则有:
即:令
不难发现,若能得到权值和为
考虑 DP,记
转移如下:
在判定时,需要查询后缀
复杂度