数位 dp 进阶(数位自动机)_杂项
数位 dp 进阶(数位自动机)
通常来说,我们遇到的数位 dp 都是在原状态上加上 表示第 位,是否顶格,本位选择的数。
也可以枚举计算数字与上界的 ,然后处理后面任意选的方案。
数位 也可以与自动机结合,变得支持多组询问,我们不妨称其为数位自动机。
(瞎起的名字,这个 trick 如果有名字请务必联系我更正。)
CF924F Minimal Subset Difference
定义 表示将十进制数 所有数码之间填入加号或者减号,最终得到的值的绝对值最小值。
组询问,给定 ,求满足 且 的 的个数。
数据范围:。
先考虑单组询问怎么做。
给定一个数字让你求那肯定直接 , 表示绝对值集合是 能否达到,简单搜一搜发现状态不是很多,只有大约 种,于是你可以爆搜并建出自动机,然后搞一个 dp 套 dp。
多组询问,你发现 很小,我们设 表示限制不超过 ,已经确定了 位,当前状态是 ,接下来所有情况的方案和。
预处理是容易的,求值的时候我们从高往低确定每一位,并枚举它的低位确加上答案,复杂度 ,可以通过预处理复杂度增加来省掉询问的一个 。
评论
评论插件加载失败
正在加载评论插件