2013年8月17日
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=4681题意:给三个串a,b,c,要求找到一个最长的d串,满足d是a和b的字串,c是d的子序列。思路:大体是把a,b串分为三个部分,中间一部分是包含c的子串,要想要d最长,所以中间这一截长度要最小,所以这一截的开始要是c[0],结尾要是c[n-1],枚举出这些个位置。假设这个串在a,b中的首尾位置分别为ai,aj,bi,bj,再求出ai,bi之前最长公共子序列的长度dp[i-1][j-1],ai,bi之后最长公共子序列的长度dp[i+1][j+1],答案为这两个公共子序列的长度加上c的长度的最大值。 阅读全文
posted @ 2013-08-17 19:29 ∑求和 阅读(127) 评论(0) 推荐(0)