DP 学习笔记(四):高级 DP 类型、高级 DP 优化
DP 新类型
子集和DP (SOS DP)
有点像是只有
子集和
举个例子:给定一个含
考虑普通的状压
这次我们一位一位地 DP,记
如果
于是,设
可以发现
完整代码:其实很短
for(int i = 0; i < (1 << n); i++)
f[i] = a[i];
for(int j = 0; j < n; j++)
for(int i = 0; i < (1 << n); i++)
if(((i >> j) & 1) == 0)
f[i | (1 << j)] += f[i];
复杂度为
自动机DP
整体DP
动态DP
先从最基础的 DP,也就是递推讲起。
首先,递推分为线性递推和非线性递推,非线性递推比如 Somos-4 序列(
常见的线性 DP 又分为以下
-
常系数线性递推。通常可以写成:
,其中 是常数。比如几何级数: ,或者斐波那契数列: ; -
普通整式递推。通常可以写成:
,其中 是关于 的函数。比如阶乘序列: ,或者莫茨金序列: ; -
含
双参的整式递推。通常可以写成:: ,其中 是关于 和 的函数。比如 阶乘序列: 。
在这里,我们只解决常系数线性递推,而常系数线性递推又分为常系数齐次线性递推和常系数非齐次线性地推。动态 DP 一般解决常系数齐次线性递推问题在小数据范围内的求解(可见这只是冰上一角,但这一角也能把你压垮)。
考虑到
DP优化
Slope Trick
WQS 二分
FFT
参考资料
-
SOS DP 学习笔记 cyl06
-
[dp 小计] SOSdp g1ove
本文来自博客园,作者:JPGOJCZX,转载请注明原文链接:https://www.cnblogs.com/JPGOJCZX/p/18549337
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效