问题
给定序列
X=<x_1,x_2,…,x_m>
Y=<y_1,y_2,…,y_j>
求X和Y的最长公共子序列(LCS)
解析
用动态规划解决最长公共子序列问题。
设dp[i][j]表示字符串S1前i位与字符串S2前j位的LCS,则dp[n][m]即为答案。
具体遍历过程如下表:S1:2345678,S2:135789
设计
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdlib>
#include<cmath>
using namespace std;
typedef long long ll;
char s1[1010