4 条题解
-
1
#include <bits/stdc++.h> using namespace std; const int N = 1e4 + 10; const int INF = 0x3f3f3f3f; int n; int a[N],b[N]; int dp[N][N]; int main(){ cin >> n; for(int i = 1;i <= n;i++){ cin >> a[i]; } for(int i = 1;i <= n;i++){ cin >> b[i]; } for(int i = 1;i <= n;i++){ int sum = 1; for(int j = 1;j <= n;j++){ dp[i][j] = dp[i - 1][j]; if(a[i] == b[j]){ dp[i][j] = max(dp[i][j],sum); } if(a[i] > b[j]){ sum = max(sum,dp[i][j] + 1); } } } int nmax = -INF; for(int i = 1;i <= n;i++){ nmax = max(nmax,dp[n][i]); } cout << nmax; }
信息
- ID
- 183
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 247
- 已通过
- 73
- 上传者