题解 | #最长公共子序列(一)#
最长公共子序列(一)
http://www.nowcoder.com/practice/672ab5e541c64e4b9d11f66011059498
#include <bits/stdc++.h>
using namespace std;
const int N=1e3+5;
int dp[N][N]={0};
int n,m;
string a,b;
int main()
{
cin>>n>>m;
cin>>a>>b;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(a[i]==b[j]){
dp[i+1][j+1]=dp[i][j]+1;
}else{
dp[i+1][j+1]=max(dp[i+1][j],dp[i][j+1]);
}
}
}
cout<<dp[n][m]<<endl;
return 0;
}