GESP C++ 真题 · 逐题精解
首页C++五级真题 › 2026年6月 › 第14题

GESP 2026年6月 C++五级 单选题 第14题

C++五级单选题2026年6月第14题

所属知识点:综合应用(跨题型) 难度要求:掌握 考频:—

小杨打包「零食盲盒」:快递盒最多承重 limit,每盒最多装两个盲盒。策略:每次把最轻和最重的尝试放一起,若两者之和不超过 limit 就一起装,否则最重的单独装。下面代码计算最少快递盒数,横线处应填( )。
int minBoxes(vector<int>& w, int limit) {
    sort(w.begin(), w.end());
    int l = 0, r = w.size() - 1;
    int boxes = 0;
    while (l <= r) {
        if (w[l] + w[r] <= limit) {
            ______________;  // 在此处填入代码
        } else {
            r--;
        }
        boxes++;
    }
    return boxes;
}

正确答案:C

题目解析
排序后用双指针:若最轻 w[l] 与最重 w[r] 能一起装,则两个盲盒都被装进这一盒,左右指针同时收缩 l++; r--;,选 C。装不下时只让最重的单独装(r--)。每轮 boxes++。💡 这是经典「两数配对最少分组(救生艇)」贪心。

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习