GESP 五级 · GESP 202603 C++ 五级 第 20 题

判断题 · 答案 B · 考点:归并排序

← 整套速查表 GESP 五级 全部真题

题目

在一个数组中,如果两个元素 a[i] 和 a[j] 满足 i < j 且 a[i] > a[j],则 a[i] 和 a[j] 是一个逆序对。下面代码可以正确统计数组 a 区间 [l,r] 内的逆序对总数。

long long cnt=0;
void merge_count(vector<int>& a, int l, int m, int r){
    int i = l, j = m + 1;
    while(i <= m && j <= r) {
        if(a[i] <= a[j]) i++;
        else {
            cnt += (m - i + 1);
            j++;
        }
    }
}
答案:B

考点

归并排序

解题思维

仔细审题,明确已知条件和所求目标,运用相关知识点逐项分析。

常见错误

审题时注意题目要求(选正确还是选错误),避免因审题不清失分。涉及代码的题目要逐行分析变量变化。

详细解析(节选)

【考点】归并排序|逆序对统计|递归调用链

1. 🎯 考纲定位(考点定位)

本题考查《GESP 考试大纲》五级"算法与程序设计"模块中归并排序与逆序对统计的综合运用。命题人卡住的是考生对merge 完整流程的认知——只背了计数逻辑,却忽略了数组排序本身。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断