摘要: 题意: 给定两个字符串,输出他们的最长公共子序列,要求字典序最小。分析:先用LCS算法将最长公共子序列的长度len求出来,还有数组f[i][j],表示字符串a前i个字符和字符串b前j个字符的最长公共子序列的长度,时间复杂度O(n*m)。然后将两个字符串逆序,方便求最小字典序。用两个二维数组分别记录两个字符串a和b前i个字符中字符c出现的最后位置,la[i][c],字符串a的前i个字符中,字符c出现的最后位置。la[i][c],字符串b的前i个字符中,字符c出现的最后位置。然后从最大长度len到1枚举答案的每个位置的字符,直接暴力会超时,需要优化。利用前面的f[][],la[],lb[]数组进行 阅读全文
posted @ 2012-07-20 12:20 'wind 阅读(1424) 评论(0) 推荐(0) 编辑