LightOJ 1013 - Love Calculator

来源:互联网 发布:淘宝一件代发下单流程 编辑:程序博客网 时间:2024/04/29 06:01

题意:给出两个人的名字a,b,找到一个最短的字符串s,使得a,b,都是s的子串,同时,输出对应s的个数。


题目链接


解决方法:

     对于s的长度确定,很容易想到求出最长公共字串,length (s) = length (a) + length (b) - length (LCS);

     关键在于个数的确定,学习大牛~~~

     dp[i][j][k]中,表示构造了i长度的字符串,利用了a的前i个字符以及b的前j个字符,dp 就是当前状态下总的方案数, 考虑转移,要在后面继续扩充一个字符,如果a[j+1] = b[k+1],就可以转移到dp[i+1][j+1][k+1]的状态, 否则,可以转移到dp[i+1][j][k+1]或者dp[i+1][j+1][k];

 

注意:long long


原创粉丝点击