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
 - 上传者