DP
yoer77
这个作者很懒,什么都没留下…
展开
-
多重集组合数 [dp] 《挑战程序设计竞赛》2.3
问题描述: 有 nn 种物品,第 ii 种物品有 aia_i 个。不同种类的物品可以相互区分但是相同的种类无法区分。从这些物品中取出 mm 个的话,有多少种取法?为了防止重复计数,同一类的物品最好一次性处理好. 于是我们定义: f[i][j]=从前i种物品中选取j个物品的组合总数f[i][j] = 从前i种物品中选取j个物品的组合总数 为了从前i种物品中选取j个,我们可以先从前i-1种原创 2017-03-15 21:38:58 · 574 阅读 · 0 评论 -
划分数, n的m划分 [dp计数] 《挑战程序设计竞赛》2.3
有n个无区别的物品,将它们划分为不超过m组,求出划分方法数模M的余数。限制条件:1≤m≤n≤10002≤M≤10000这样的划分被称作n的m划分,dp数组可以这么定义:dp[i][j]=j的i划分的总数。递推关系的难点在于不重复。我们采用一种标准将问题化为子问题,这个标准需要用到一种新的定义。我们定义n的m划分具体为一个集合{ai},{ai}满足∑mi=1 ai = n 。可以看出{ai}里一共有m转载 2017-03-15 20:17:40 · 1786 阅读 · 0 评论 -
POJ 1742-Coins [dp 多重背包问题] 《挑战程序设计竞赛》2.3
题目链接: POJ 1742 Coins题目大意: 有n种不同面值的硬币 A1,A2,...,AnA_1, A_2, ... , A_n, 分别有C1,C2,...,CnC_1, C_2, ... , C_n 枚。 求这些硬币所能组成的小于等于m的不同的面值种类数。原创 2017-04-05 18:20:26 · 572 阅读 · 0 评论 -
POJ 1065-Wooden Sticks [dp+Dilworth定理] 《挑战程序设计竞赛》2.3
题目链接 POJ 1065-Wooden Sticks 题目大意 有nn 块木板, 每块都有各自的长ll和宽ww。 在加木板的时候,刚刚加工了一块长和宽分别为ll 和 ww,加工的下一块长l′l',宽w′w', 如果l<=l′l <= l' 并且w<=w′w <= w', 则可以直接加工,否则需要花费1单位时间来重新设置机器。加工第一块木板的时候必须设置机器。 求加工完nn 块原创 2017-04-05 21:58:27 · 469 阅读 · 0 评论 -
背包九讲详解
背包九讲详解0-1背包问题完全背包问题多重背包问题原创 2017-04-29 06:56:10 · 21449 阅读 · 7 评论