【VP 记录】ABC249
记录
ABCD 15min 切掉了,E 题思考了较长时间,中途还换过思路,60min 切掉了,F 题一直在想数据结构,没有想出正解。
VP 后补了 F,G 紫 H 黑决定不补了。
题解
A - Jogging
基本判断 + 数学题,略过不表。
B - Perfect String
开桶 + 记录是否有大小写,略过不表。
C - Just K
状压,枚举每一种选择方案,再统计出现次数恰为
D - Index Trio
注意到值域较小,考虑开桶。
之后枚举每个数作为
E - RLE
前缀和优化组合计数类 dp。
首先想到设
考虑优化转移,发现所有位数相同的
F - Ignore Operations
场上想到了枚举每个修改操作为最后一次修改,再从后面的加操作中选取若干个贡献。
因此考虑倒序处理,若为修改就记录一下答案,接着消耗一次跳过来保证这次不会修改,再继续向前寻找,直到次数耗尽。加操作中,若加的是非负数,加上一定不劣,而若是负数则先放到一个大根堆中,次数用尽时先从堆中拿出最大元素加上,来换取一次跳过,直到堆也空时才是真正耗尽了次数。
其实大根堆维护的类似于反悔操作,也即把已经跳过的再选回去来节省次数。