组合题6 个小题
已作答 0 / 6
1#include <algorithm>2#include <cstdio>3#include <cstring>4#define ll long long5int f[5007][5007];6int a[5007], b[5007];7int n;8int main() {9 scanf("%d", &n);10 for (int i = 1; i <= n; ++i) {11 scanf("%d", &a[i]);12 }13 for (int i = 1; i <= n; ++i) {14 scanf("%d", &b[i]);15 }16 for (int i = 1; i <= n; ++i) {17 for (int j = 1; j <= n; ++j) {18 f[i][j] = std::max(f[i][j], std::max(f[i - 1][j], f[i][j - 1]));19 if (a[i] == b[j]) {20 f[i][j] = std::max(f[i][j], f[i - 1][j - 1] + 1);21 }22 }23 }24 printf("%d\n", f[n][n]);25 return 0;26}将第 18 行的 f[i][j] = std::max(f[i][j], std::max(f[i-1][j], f[i][j-1])); 删去后,并不影响程序运行结果。( )