最长公共子序列

陈子骏

2018-07-11 21:09:36

Personal

``` #include<bits/stdc++.h> using namespace std; int f[3000][3000]; int main(){ int n,m; int a[3001],b[3001]; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++)scanf("%d",&a[i]); for(int i=1;i<=m;i++)scanf("%d",&b[i]); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { f[i][j]=max(f[i-1][j],f[i][j-1]); if(a[i]==b[j])f[i][j]=max(f[i][j],f[i-1][j-1]+1); } printf("%d",f[n][m]); } ```