1 条题解
-
0
C++ :
#include <bits/stdc++.h> using namespace std; int n,dp[1001][1001],i,j,a[1001],b[1001]; int main() { cin>>n; for(i = 1;i <= n;i++){ cin>>a[i]; } for(i = 1;i <= n;i++){ cin>>b[i]; } /* 计算a序列取i个元素,b序列取j个元素下的最长公共子序列长度 */ for(i = 1;i <= n;i++){ for(j = 1;j <= n;j++){ if(a[i] == b[j]){ dp[i][j] = dp[i-1][j-1] + 1; }else{ dp[i][j] = max(dp[i-1][j],dp[i][j-1]); } } } cout<<dp[n][n]; return 0; }
- 1
信息
- ID
- 2697
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者