AcWing 272. 最长公共上升子序列
标签:res color 字母 包含 code scan scanf mes span
#includeusing namespace std ;
const int N=3030;
int n;
int a[N];
int b[N];
int f[N][N];
//f[i][j]
//表示所有由第一个序列的前i个字母,和第二个序列的前j个字母构成的,
//且以b[j]结尾的公共上升子序列
int main() {
scanf("%d",&n);
for(int i=1; i"%d",&a[i]);
for(int i=1; i"%d",&b[i]);
for(int i=1; i)
for(int j=1; j) {
//不包含a[i]的公共上升子序列
f[i][j]=f[i-1][j];
//包含的
if(a[i]==b[j])
{
f[i][j]=max(f[i][j],1);
for(int k=1; k)
if(b[k]b[j])
f[i][j]=max(f[i][j],f[i][k]+1);
}
}
int res=0;
for(int i=1; imax(res,f[n][i]);
printf("%d\n",res);
return 0;
}
AcWing 272. 最长公共上升子序列
标签:res color 字母 包含 code scan scanf mes span
原文地址:https://www.cnblogs.com/QingyuYYYYY/p/11961210.html
评论