题库 信息学奥赛题库 题目列表 2020年信息学奥赛csp-j阅读程序题:#include &lt...
组合题

2020年信息学奥赛csp-j阅读程序题:

#include <algorithm>
#include <iostream>
using namespace std;
int n;
int d[50][2];
int ans;

void dfs(int n, int sum) {
    if (n == 1) {
        ans = max(sum, ans);
        return;
    }
    for (int i = 1; i < n; ++i) {
        int a = d[i - 1][0], b = d[i - 1][1];
        int x = d[i][0], y = d[i][1];
        d[i - 1][0] = a + x;
        d[i - 1][1] = b + y;
        for (int j = i; j < n - 1; ++j)
            d[j][0] = d[j + 1][0], d[j][1] = d[j + 1][1];
        int s = a + x + abs(b - y);
        dfs(n - 1, sum + s);
        for (int j = n - 1; j > i; --j)
            d[j][0] = d[j - 1][0], d[j][1] = d[j - 1][1];
        d[i - 1][0] = a, d[i - 1][1] = b;
        d[i][0] = x, d[i][1] = y;
    }
}

int main() {
    cin >> n;
    for (int i = 0; i < n; ++i)
        cin >> d[i][0];
    for (int i = 0; i < n; ++i)
        cin >> d[i][1];
    ans = 0;
    dfs(n, 0);
    cout << ans << endl;
    return 0;
}

假设输入的n是不超过50的正整数,d[i][0]d[i][i]都是不超过10000的正整数,完成下面的判断题和单选题:

第1题 判断

若输入n0,此程序可能会死循环或发生运行错误。( 

A.
正确
B.
错误
第2题 判断
若输入n为20,接下来的输入全为0.则输出为0。()
A.
正确
B.
错误
第3题 判断
输出的数一定不小于输入的d[i][0]和d[i][1]的任意一个。(   )
A.
正确
B.
错误
第4题 单选

若输入的n为20,接下来的输入是20个9和20个0,则输出为()

A.

1971

B.

1908

C.

1881

D.

1890

第5题 单选

若输入的n为30,接下来的输入是30个0和30个5,则输出为(   )

A.

2020

B.

2030

C.

2010

D.

2000

第6题 单选

若输入的n为15,接下来的输入是15到1,以及15到1,则 输出为(   )。

A.

2420

B.

2220

C.

2440

D.

2240

题目信息
阅读程序 2020年 初赛
-
正确率
0
评论
181
点击