首页 / 客观题库

70018 - 2025-csp-j真题-阅读程序3

题目(材料题)

1 #include <algorithm>
2 #include <cstdio>
3 #include <cstring>
4 #define ll long long
5 int f[5007][5007];
6 int a[5007], b[5007];
7 int n;
8
9 int main() {
10    scanf("%d", &n);
11    for (int i = 1; i <= n; ++i) {
12        scanf("%d", &a[i]);
13    }
14    for (int i = 1; i <= n; ++i) {
15        scanf("%d", &b[i]);
16    }
17    for (int i = 1; i <= n; ++i) {
18        for (int j = 1; j <= n; ++j) {
19            f[i][j] = std::max(f[i][j], std::max(f[i - 1][j], f[i][j - 1]));
20            if (a[i] == b[j]) {
21                f[i][j] = std::max(f[i][j], f[i - 1][j - 1] + 1);
22            }
23        }
24    }
25    printf("%d\n", f[n][n]);
26    return0;
27 }

||

28. 当输入为 "4 1 2 3 4 1 3 2 2" 时,输出为 2。(  )

正确

错误

29. 当程序运行完毕后,对于所有的 $l\le i$,$j\le n$,都一定有 $f[i][j]\le f[n][n]$。( ) 

正确

错误

30. 将第 18 行的 "f[i][j] = std::max(f[i][j], std::max(f[i-1][j], f[i][j-1]));" 删去后,并不影响程序运行结果。(  )

正确

错误

( 单选 )

31. 输出的答案满足的性质有(  )。

A 小于等于 n

B 大于等于 0

C 不一定大于等于 1

D 以上均是

( 单选 )

32. 如果在 16 行的循环前加上以下两行:

std::sort(a+1, a+n+1);

std::sort(b+1, b+n+1);

则答案会( )。

A 变大或不变

B 变小或不变

C 一定变大

D 不变

( 单选 )

33. 如果输入的 a={1,2,…,n} ,而且 b 数组中数字均为 1∼n 中的正整数,则上述代码等价于下面哪个问题:(  )

A 求 b 数组去重后的长度

B 求 b 数组的最长上升子序列

C 求 b 数组的长度

D 求 b 数组的最大值

意见反馈

    最多上传3张图片,格式为JPG、PNG、JPEG,单张不超过5MB

    注册

    发送验证码

    密码必须包含数字、字母和特殊字符

    找回密码

    发送验证码

    密码必须包含数字、字母和特殊字符

    运行 ID:67149

    • 测试点1:Accepted
    • 用时:0 ms
    • 内存:288 kb
    • 测试点2:Accepted
    • 用时:0 ms
    • 内存:288 kb
    输入
    203
    输出
    203

    test

    测评信息

    错误.in文件下载

    错误.out文件下载

    运行 ID:67149

    2019-01-24 15:06:36