摘要: 数量规模不超过20时 要存储每个状态取或不取的状态时可以用状态压缩。 所谓状态压缩,就是用二进制数表示集合 用1代表有该元素,0代表没有该元素 {100101}=37 表示集合中有第1,3,6个元素。 用状压dp存储状态消耗的空间是2^n 例题1: 有一个n*m的矩阵 其中有的格子可以选,有的不能选 阅读全文
posted @ 2017-10-17 21:21 小螺号打豆豆 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 何为子序列? 子序列是 从原序列取任意多项 不改变它们的顺序 得到序列 最长上升子序列是: 取出的子序列元素大小从小到大 一个O(N^2)的算法 状态 d[ i ] 表示 以第i个元素为结尾 得到的上升子序列的最大长度 状态转移方程: d[ i ] = d[ j ] +1 (a [ j ] < a[ 阅读全文
posted @ 2017-10-17 20:38 小螺号打豆豆 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 2017-10-1719:26:55 01背包是dp入门经典问题,问题的原型是这样的: 给定n个物品,每个物品都有一定的价值和体积 , 你有一个容积为V 的背包 , 你要用这个背包装价值尽量大的物品(毕竟白捡,自然是捡的越多越好)。 每件物品只有两种选择: 选 或是 不选 因此这个问题被称为01背包 阅读全文
posted @ 2017-10-17 19:27 小螺号打豆豆 阅读(121) 评论(0) 推荐(0) 编辑