#1511. 珅泽教育CSP-J第一轮模拟考第二套 第 40 题

珅泽教育CSP-J第一轮模拟考第二套 第 40 题

第2题

给定 nn 个整数 a0,a1,,an1a_0,a_1,\ldots,a_{n-1},其中 1n401\le n\le40,请统计,这个序列有多少种子序列,其子序列的和大于 00

#include<iostream>
#include<algorithm>
int a[40];
int x[1 << 20];
int y[1 << 20];

int generate(int begin, int end, int sum, int* out, int pos) {
    if (begin == end) {
        ____(1)____;
        return 1;
    }
    else {
        int f = generate(begin + 1, end, sum + a[begin], out, pos);
        int s = generate(begin + 1, end, ____(2)____);
        return f + s;
    }
}

int main() {
    int n;
    std::cin >> n;
    for (int i = 0; i < n; ++i) std::cin >> a[i];
    int x_size = ____(3)____;
    int y_size = ____(4)____;
    std::sort(x, x + x_size);
    std::sort(y, y + y_size);
    int j = y_size;
    long long pair = 0;
    for (int i = 0; i < x_size; ++i) {
        while (j > 0 && ____(5)____) {
            j--;
        }
        pair += ____(6)____;
    }
    std::cout << pair << "\n";
}

(1) 处应填( )。

{{ select(1) }}

  • out = sum
  • out[0] = sum
  • out[pos] = sum
  • out[pos+1] = sum