数位dp 模板
来源:互联网 发布:新概念英语 软件 编辑:程序博客网 时间:2024/06/15 18:10
板子
?? DP(pos,状态变量...,限制布尔){ if(pos==0)return 1;//一般每次执行到这里时的数是要算入总结果的 不一定是1 根据题目确定 if(!limit&&dp[对应状态]!=-1)return dp[对应状态]; //记忆化搜索 int up = limit?d[pos]:9;//表示如果前面一位有限制 就说明这是擦着区间上界走的 需要返回d[pos] 如果没有限制 说明没临界 返回9 ll a=0; for(int i=0;i<=up;i++){ if()... else if()...//针对不同的题目设置不同的变量记录函数 a+=(pos,状态变量...,限制布尔&&i==d[pos]);//如果这两个条件都有再传递 } if(!limit)dp[状态]=a;//已经求出对应状态值下的结果了 记录下来 return a; }
所以 数位dp其实就是一种求解有关于l到r有多少个符合条件的数目类似的统计问题的解题思路
一遍遍数字枚举太慢
不如我们根据条件枚举数位
数位dp本质上是记忆化搜索
我们需要在数位上进行递推
把条件筛选融入到数位上的筛选
所以数位dp其实就是一种算法策略可以让我们
记忆化地去搜索我们想要得到的数据结果
我们把这个数位给他拆开一位一位的枚举
根据题目对应的约束条件 设置记录结构
一般把对应长度,其余位数符合什么什么条件的 并且没有限制的数目记录下来
以供我们之后搜到相同的状态重复利用数据
降低搜索分支
阅读全文
0 0
- 数位dp模板
- 数位DP模板
- 数位DP模板
- 数位DP模板
- 【自用模板】数位dp
- 数位DP模板
- 数位DP模板
- 数位DP模板详解
- 数位DP模板
- 数位DP模板
- 数位DP模板
- 数位DP模板
- 数位DP(模板)
- 数位DP模板
- 数位DP模板
- 数位DP模板
- 【数位DP模板】
- 数位dp模板
- 5大算法思想
- 算法 第四版 1.4.14 4-sum
- CTS,GTS,CTS Verifier失败项总结(持续更新)
- Android Butterknife(黄油刀) 使用方法总结
- 对于关系型数据库中的索引的基本理解
- 数位dp 模板
- 使用JWT和Spring Security保护REST API
- 用java写一个九九乘法表
- UnsupportedClassVersionError: SonarQubeMojo : Unsupported major.minor version 52.0
- JVM基础
- 175. Combine Two Tables
- ScaleFace —— 尺度友好人脸检测
- struts2 拦截器
- 算法 1.4.15 快速3-sum