暴切DPのSkills?
常见的 问题形式:
1.求某种选取方案可得的最大值、最小值
2.求某要求下的方案数
3.累计递推结果
4.数学公式、结论、期望、概率推到
5.由多部分可以组成的问题,多部分合成可得
6.背包问题及其变形
常见 状态总结:
1.前
2.第i行第j列之前最大/最小值
3.可以新开一个数组记录位置之间的关系,便于转移,或者优化转移
4.
5.
6.
7.选了
8.花费、代价为
9.凑数时符合要求的子数,如符合要求的
10.
11.区间
12.表示长度/高度/距离为
13.一棵树中到节点
14.以该节点为根的子树的状态
15.表示从节点
16.应题目要求可设计的某个特殊值的多少
17.节点的颜色
18.关于期望
某一变量的概率乘以这一变量值,再求和,就是数学期望
期望
期望 常见的状态设法及其转移:
1、设成
对于这种方法,转移的时候要选择刷表法倒序枚举。(根据这个状态本身就可以理解)
2、设成
对于这种方法,转移的时候要选择填表法正序枚举。
对于以上两种方法,很多时候可以互换。但是有些时候不能互换。需要经过具体情况灵活判断。
3、设成
4、设成
对于以上两种方法,就是二维的状态转移。
切DP题的步骤总结:
1.确定状态
2.根据数据范围要求进行优化、简化状态
3.根据无后效性原则设计状态转移方程
4.由方程的需要对dp数组和需用的变量、数组进行预处理
5.由题目要求,选择、筛选需要的答案
番茄&zak语录之 :
1.对比自己与别人的思路
2.积累是创造的一大来源
3.提高熟练度
4.增加想法间的联系
5.dp的关键在于把问题拆分成若干子问题
6.启发式的题目往往会帮助拥有思维
7.掌握套路
Tips:
有时候遇到一个$DP$题,感觉状态复杂,不妨分成多个DP问题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?