#include<bits/stdc++.h> using namespace std; int a[100000]; int b[100000]; int n; int f[10000][10000]; void dp() { for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(a[i-1]==b[j-1]) { f[i][j]=f[i-1][j-1]+1; } else { f[i][j]=max(f[i-1][j],f[i][j-1]); } } } } int main() { cin>>n; for(int i=0;i<n;i++) { cin>>a[i]; } for(int i=0;i<n;i++) { cin>>b[i]; } dp(); cout<<f[n][n]; }
中国矿业大学——算法作业2——最长公共子序列(数字型)
最新推荐文章于 2024-10-16 19:08:56 发布