动态规划
文章平均质量分 58
tsrigo
这个作者很懒,什么都没留下…
展开
-
动态规划-HDU - 2069 Coin Change
题意 有五种硬币不限数量,面值分别是1,5,10,25,50。问你用这些硬币组成n元有多少种方式,硬币的总数要不超过100个。 思路 状态表示 如果类比01背包,那么至少我们可以认为应该用一个二维数组来记录状态,在背包问题中,我们用dp[ i ][ j ]来表示“前 i 件物品装入容量为 j 的背包所能得到的最大总价值”;在这里,我们可以尝试(事实是我也不知道为什么)用dp[ i ][ j ] 来表示“用 j 个硬币组成 k 元的方法数”。 对于dp [ 11 ]而言,它一定程度上可以由dp[ 10 ],原创 2021-11-15 22:13:02 · 360 阅读 · 0 评论 -
最长公共子序列笔记
定义 dp[ i ][ j ]表示s1…si与t1…tj对应的LCS长度 转移(缩小问题规模) 当s[ i+1] = t [ j+1]时,dp[ i + 1 ][ j + 1 ] = dp[ i ][ j ] + 1时。 因为这个元素构成了LCS的一部分,删除它就是删除了LCS的一部分。 对于其它情况 dp[ i + 1][ j + 1] = max (dp[ i ][ j + 1], dp[ i + 1][ j ]) 因为最后两个元素不等,因此删除它对两个序列的LCS没有影响,但我们并不知道应该删掉谁的原创 2021-10-24 11:44:46 · 100 阅读 · 0 评论