#12219. 珅泽教育CSP-J第一轮模拟考第二十三套 第 34 题

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

三、完善程序(共 10 题,每题 3 分,共 30 分)

完善程序(1):区间和

给定长度为 nn 的正数数列 aa,第 ii 个数为 aia_i。有 QQ 次询问,每次给定 ll,求最小的 rr,满足 al+al+1+cdots+ara_l+a_{l+1}+cdots+a_r 不小于 kk。保证有解。试补全倍增法程序。

#include <bits/stdc++.h>
using namespace std;

const int MAXN = 200000 + 7;
int n, k, Q, l, a[MAXN], s[MAXN];

int main() {
    cin >> n >> k;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        s[i] = ①;
    }
    cin >> Q;
    int limit = ②;
    while (Q--) {
        cin >> l;
        int r = l;
        for (③) {
            int dist = ④;
            if (r + dist > n)
                continue;
            if (⑤)
                r += dist;
        }
        cout << r + 1 << endl;
    }
    return 0;
}
  1. ②处应填( )。

{{ select(1) }}

  • log(n)
  • sqrt(n)
  • log(n) / log(2) + 1
  • sqrt(n) / sqrt(2) + 1