| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 数据结构与算法 -> 数位dp题目整理 -> 正文阅读 |
|
|
[数据结构与算法]数位dp题目整理 |
Windy数限制条件:不含前导0且相邻两个数字之差至少为2 1.把求[l,r]转换成求[1,l-1]&[1,r],然后利用类似前缀和的思想 2.把长度短的数字补全前导0 通过以上两步,就把两种限制条件都变成了数位的维度 从高位到低位去枚举---->dfs dfs都需要记录哪些状态? 1.枚举到了哪一位 2.前一位数字是多少(要保证数位之差>=2) 3.这一位可以填哪些数字 前两个很好维护,我们看第三个参数,以12345为例
由此,对于位置x,可以得出结论:
?dfs需要参数:pos(当前位数)pre(前一位数字是多少)flag(是否前面每一位都和上限数字相同)
接下来考虑优化该dfs——数位dp 我们会发现,如果flag==false,整个dfs后面的过程与limit将毫无关系,我们可以把这个状态的答案记录下来——这就是数位dp的思想所在
|
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/8 4:32:58- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |