← 查看本卷题目
组合题5 个小题
已作答 0 / 5

(序列合并) 有两个长度为 NN 的单调不降序列 AA 和 BB,序列的每个元素都是小于 10910^9 的非负整数。在 AA 和 BB 中各取一个数相加可以得到 N2N^2 个和,求其中第 KK 小的和。上述参数满足 N≤105N \leq 10^5 和 1≤K≤N21 \leq K \leq N^2。

#include <iostream>using namespace std; const int maxn = 100005; int n;long long k;int a[maxn], b[maxn]; int* upper_bound(int *a, int *an, int ai) {    int l = 0, r = ___①___;    while (l < r) {        int mid = (l+r)>>1;        if (___②___) {            r = mid;        } else {            l = mid + 1;        }    }    return ___③___;} long long get_rank(int sum) {    long long rank = 0;    for (int i = 0; i < n; ++i) {        rank += upper_bound(b, b+n, sum - a[i]) - b;    }    return rank;} int solve() {    int l = 0, r = ___④___;    while (l < r) {        int mid = ((long long)l+r)>>1;        if (___⑤___) {            l = mid + 1;        } else {            r = mid;        }    }    return l;} int main() {    cin >> n >> k;    for (int i = 0; i < n; ++i) cin >> a[i];    for (int i = 0; i < n; ++i) cin >> b[i];    cout << solve() << endl;} 
第36题单选题原卷 3 分

④ 处应填( )?

填写答案