完善程序(1) 1-5题 组合题 合并序列。有两个长度为N的单调不降序列A和B,序列的每个元素都是小于109的非负整数。在A和B中各取一个数相加可以得到N2个和,求其中第k小的和。上述参数满足N≤105和1≤K≤N2。 #include 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 > 1; if (②) { r = mid; } else { l = mid + 1; } } return ( ③ ); } long long get_rank(int sum) { long long rank = 0; for (int i = 0; i > 1; if ( ⑤ ) { l = mid + 1; } else { r = mid; } } return l; } int main() { cin >> n >> k; for (int i = 0; i > a[i]; for (int i = 0; i > b[i]; cout << solve() << endl; return 0; }
正确答案:完善程序①答案:r=an-a(upper_bound右边界取数组结尾)。核心:二分上界。
试卷来源:2024 CSP-S提高级(第一轮)C++真题