dp
moon548834
这个作者很懒,什么都没留下…
展开
-
LCS 问题
给定两个字符串s1s2...sn和t1t2...tn。 求出这两个字符串的最长的公共子序列的长度。字符串s1s2...sn的子序列指可以表示为si1si2...sim 的序列 1 最近想好好搞搞dp 先从最简单的问题一点点开始吧!! 其中dp[i][j]表示s1-si 和t1-tj 的最长公共子序列的长度 转移方程就是如果他们的i+1位相同那么 dp[i+1][j+1]=dp[i原创 2017-04-29 21:59:34 · 333 阅读 · 0 评论 -
01 背包 变形之转移价值
今天看算法导论dp。 这样的一道题 叙述和01背包一样 有n个重量和价值分别为wi vi的物品。 从这些物品中挑选总重量不超过W的物品,求所有挑选方案中价值总和的最大值。 注意限制条件 1 1 1 1 如果还是按照之前的 用价值转移的话 会发现这个算法会T 因为那个的复杂度是 O(nW) 所以这次的 dp[i+1][j] 是前i个物品中价值为j时的最小重量值原创 2017-04-30 23:09:27 · 391 阅读 · 0 评论 -
LIS 最长上升子序列问题 O(n^2)
继续dping 有一个长为n的数列 a0 a1....an-1 请求出这个序列中最长的上升子序列的长度。 上升子序列指的是对于任意的i 其中 1 0 这里给出的 n^2的算法 不过有更快的 先把这个弄懂了再研究nlogn的~ 这里的dp[i]表示 前i+1个个数的最长上升子序列。 也就是以ai 为末尾的最长上升子序列长度。 一开始忘掉了 一种就是只包括它本身的1个数 比如原创 2017-05-01 22:39:11 · 248 阅读 · 0 评论