首页 / 客观题库

80499 - CSP-S2024完善程序1

基础算法

题目(材料题)

(序列合并) 有两个长度为$ N $ 的单调不降序列 A  和 B ,序列的每个元素都是小于 $10^9$ 的非负整数。在 A  和 B  中各取一个数相加可以得到$ N^2 $ 个和,求其中第 K  小的和。上述参数满足 $N≤10^5$ 和 $1≤K≤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;

}

 

 
||
( 单选 )

①处应填

A an-a

B an-a-1

C ai

D ai+1

( 单选 )

②处应填

A a[mid] > ai

B a[mid] >= ai

C a[mid] < ai

D a[mid] <= ai

( 单选 )

③处应填

A a+l

B a+l+1

C a+l+1

D an-1

( 单选 )

.④处应填

A a[n-1]+b[n-1]

B a[n]+b[n]

C 2 * maxn

D maxn

( 单选 )

⑤处应填

A get_rank(mid) < k

B get_rank(mid) <= k

C get rank(mid) > k

D get_rank(mid) >= k

意见反馈

    最多上传3张图片,格式为JPG、PNG、JPEG,单张不超过5MB

    注册

    发送验证码

    密码必须包含数字、字母和特殊字符

    找回密码

    发送验证码

    密码必须包含数字、字母和特殊字符

    运行 ID:67149

    • 测试点1:Accepted
    • 用时:0 ms
    • 内存:288 kb
    • 测试点2:Accepted
    • 用时:0 ms
    • 内存:288 kb
    输入
    203
    输出
    203

    test

    测评信息

    错误.in文件下载

    错误.out文件下载

    运行 ID:67149

    2019-01-24 15:06:36