整理:数位DP

关于数位DP的整理

1.什么时候用数位DP解题?

\(OI\ Wiki\):

数位 DP:用来解决一类特定问题,这种问题比较好辨认,一般具有这几个特征:

  1. 要求统计满足一定条件的数的数量(即,最终目的为计数);
  2. 这些条件经过转化后可以使用「数位」的思想去理解和判断;
  3. 输入会提供一个数字区间(有时也只提供上界)来作为统计的限制;
  4. 上界很大(比如 \(10^{18}\)),暴力枚举验证会超时。

2.数位DP的不同题型

1.计数类

求区间内满足的某一条件数有多少.

而根据条件,我们可以将这类题目再进一步细分

1.含有某一具体数字/子串

这一类属于数位DP的入门题,难度较低

比如这两题:不要62/Bomb

解法就是直接在状态中写入前面几位的数字,在决策时判断即可

2.能被某些数字整除/余数为特定值

同样也比较简单.

如果是被某一特定数字整除,我们只需要记录除以此数后的余数,然后在每一位决策时维护余数即可

如果是被数位和整除,我们发现, \([1,9]\) 的余数组成的九元组可以与 \(2520\) 的余数集一一对应,那么久转换成立被某一特定数字整除的情况

B-number/Beautiful numbers

3.给定一个函数 \(f\),要求函数值 \(f(x)\) 满足某一条件

这种题的难度与函数本身密切相关.

比如这题F(x),由于本身函数十分简单,所以这道题十分水

但是这题 Kathy函数,由于函数极为无厘头,导致这题十分难

4.一些奇奇怪怪的条件

难度视条件而定

Balanced Numbers

K-wolf Number

odd-even number

2.求和类

包括但不限于求数字和,求平方和.

只需要将返回类型变成结构体,然后进行相应的运算即可

吉哥系列故事——恨7不成妻

数数

3.与其他算法结合得到的BT题目

XHXJ's LIS:DP套DP

淘金:数位DP+带反悔的贪心

posted @ 2025-04-06 18:49  陈牧九  阅读(27)  评论(0)    收藏  举报