2020-11-10
dp
163A 1800
题目
原题链接:https://codeforces.com/problemset/problem/163/A
思路
题目大意:两个字符串,从第一个字符串中取子串(元素连续),从第二个字符串中取子序列(元素不要求连续),若子串和子序列一模一样就算一个有效对,问总共有多少有效对(只要有本来的索引不一致就可以认为是不同的有效对)。
思路:和最长公共子序列有点关系又有点不同,毕竟第一个序列要求的是子串。
先给出状态定义和状转公式
dp[i][j]表示以a[i]结尾的子串和b[1-j]中子序列符合题意的匹配对的数量
if (a[i] == b[j])dp[i][j] = (dp[i - 1][j - 1] + 1) % mod;
dp[i][j] = (dp[