最长公共子序列问题(lcs).pptVIP

  • 24
  • 0
  • 约3.72千字
  • 约 28页
  • 2017-09-06 发布于天津
  • 举报
最长公共子序列问题(lcs)

动态规划 陈昕昀 最长公共子序列问题(LCS) 字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列。给定两序列X和Y,求它们的最长公共子序列。 分析: f[i][j]记录X的前i个字符构成的串与Y 的前j个字符构成的串的LCS长度 f[i][j] = 0 if i = 0 or j = 0 = max(f[i][j-1],f[i-1][j], f[i-1][j-1]+1) if i,j0 and xi = yj = max(f[i][j-1],f[i-1][j]) if i,j0 and xi != yj : 分析: 设f[i]表示第i位数字的最长上升子序列长 度,则f[i]值只与a[j]a[i](ji)对应的子 序列有关 f[i]=max{f[j](a[j]a[i](ji))}+1 01背包问题 在n件物品取出若干件放在容量为m的背包里,每件物品的重量为w1,w2,…wn,与之相对应的价值为p1,p2,…,pn。求所能获得的最大价值。m与wi均为整数。 for (i=1;i=n;i++) for (v=m;v=w[i];v--)

文档评论(0)

1亿VIP精品文档

相关文档