摘要: 背包DP是线性DP中一种特殊的DP。 01背包 最基础的背包,有 \(n\) 件物品,背包容量为 \(V\),每件物品只有一件。可以使用空间优化,一般是原地滚动,此时注意容量需要从后往前更新,否则会一个状态更新多次。时间复杂度为 \(O(nV)\)。 核心代码 void solve() { int 阅读全文
posted @ 2024-08-01 18:58 catting123 阅读(108) 评论(0) 推荐(0)
摘要: 状压DP(Bit mask DP)将状态压缩为二进制表示,用于处理状态复杂的问题。主要分为一维和二维两种类型。 一维状压DP 最经典的是求最短哈密顿路径,对应 \(n\) 个结点的带权无向图,暴力枚举所有情况的时间复杂度为 \(O(n)\),但是我们思考一下,到达某个顶点时,需要记录在这之前已经走过 阅读全文
posted @ 2024-08-01 18:20 catting123 阅读(52) 评论(0) 推荐(0)