摘要:
问题给定两个序列A和B,序列的子序列是指按照索引逐渐增加的顺序,从原序列中取出若干个数形成的一个子集,若子序列的数值大小是逐渐递增的则为上升子序列,若A和B取出的两个子序列A1和B1是相同的,则A1/B1为A和B的公共子序列。求出A和B的最长公共上升子序列。分析结合最长公共子序列和最长上升子序列来解... 阅读全文
摘要:
编辑距离是指两个字串之间,从一个转成另一个所需要的最少编辑操作次数,许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。问题给定两个字符串S1和S2,求S2和S1的编辑距离,即至少需要经过多少步编辑操作才可以将S1变成S2。分析定义“状态” edit[i][j],表示将S1的长... 阅读全文
摘要:
最长公共子序列(LCS)是一类典型的动归问题。 问题 给定两个序列(整数序列或者字符串)A和B,序列的子序列定义为从序列中按照索引单调增加的顺序取出若干个元素得到的新的序列,比如从序列A中取出 A[i1], A[i2], ...A[ik],其中0=< i1 <= i2 <= ... ik <= n- 阅读全文
摘要:
题目大意给定一列数,从中选择两个不相交的连续子段,求这两个连续子段和的最大值。题目分析典型的M子段和的问题,使用动态规划的方法来解决。f[i][j] 表示将A[1...i] 划分为j个不相交连续子串,且A[j]属于第i个子串,所能达到的最大子串和g[i][j] 表示将A[1...j]划分为i个不相交... 阅读全文