#1373. [CSP2025 入门级] 第 33 题
[CSP2025 入门级] 第 33 题
#include <algorithm>
#include <cstdio>
#include <cstring>
#define ll long long
int f[5007][5007];
int a[5007], b[5007];
int n;
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; ++i) {
scanf("%d", &a[i]);
}
for (int i = 1; i <= n; ++i) {
scanf("%d", &b[i]);
}
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
f[i][j] = std::max(f[i][j], std::max(f[i - 1][j], f[i][j - 1]));
if (a[i] == b[j]) {
f[i][j] = std::max(f[i][j], f[i - 1][j - 1] + 1);
}
}
}
printf("%d\n", f[n][n]);
return 0;
}
判断题
(本题在原卷中被删除)如果输入的 ,而且 数组中数字均为 中的正整数,则上述代码等价于下面哪个问题:( )。
A. 求 数组去重后的长度
B. 求 数组的最长上升子序列
C. 求 数组的长度
D. 求 数组的最大值
{{ select(1) }}
- 求 数组去重后的长度
- 求 数组的最长上升子序列
- 求 数组的长度
- 求 数组的最大值