总结数位DP算法定义.pdfVIP

  • 9
  • 0
  • 约7.5千字
  • 约 6页
  • 2021-12-03 发布于福建
  • 举报
数位 dp 是一种计数用的 dp,一般就是要统计一个区间 [le,ri] 内满足一些条件数的个 数。比如, [1,10000] 中统计不含有 4 的数。 所谓数位 dp,字面意思就是在数位上进行 dp 咯。 就是对数字每一位每一位递推 此类题目最基本的暴力方法: 1. for ( int i=le;i=ri;i++) 2. if (Check(i)) ans++; 而数位 DP 就是从最低 (高)位起,一位一位的放数字,然后记忆化一下,累加一下 有两种方法,一是递推,二是记忆化搜索 一,记忆化搜索: 思路来自: 数位 dp 总结之从入门到模板 假设题目要求是不含有 62 的数 状态定义: d[pos][pre] 表示当前枚举到 pos 位置,且 pos+1 位的数字是 pre,此时满 足题意的数字的个数 (也即是 pre==6 时, pos 该位置不能放 2) 还要个数组 a[i] 保存第 i 位的数字,如 213,a[0]=3 ,注意是从右往左数 有个问题是枚举第 pos 位数

文档评论(0)

1亿VIP精品文档

相关文档