GESP2025年6月认证C++四级( 第三部分编程题(2)排序)

参考程序:

cpp 复制代码
#include <cstdio>
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;

int main() {
    int n, ans = 0;

    // 读取学生人数
    scanf("%d", &n);

    // 用 vector 存储每个学生的身高和体重(h, w)
    vector<pair<int, int>> a(n);
    for (int i = 0; i < n; i++)
        scanf("%d%d", &a[i].first, &a[i].second);  // 读入每个学生的 h 和 w

    // 枚举所有 i < j 的学生对
    for (int i = 0; i < n; i++)
        for (int j = i + 1; j < n; j++)
            // 如果 a[i] < a[j],说明 i 应该排在 j 的后面
            // 但现在在前面,表示出现了"逆序对",需要一次交换
            if (a[i] < a[j])
                ans++;

    // 输出最少交换次数
    cout << ans << '\n';
    return 0;
}
相关推荐
Mercury_Lc几秒前
【贪心 或 DFS - 面试题】小于n最大数
数据结构·c++·算法
凤年徐3 分钟前
【数据结构】LeetCode160.相交链表 138.随即链表复制 牛客——链表回文问题
c语言·数据结构·c++·算法·leetcode·链表
羑悻的小杀马特21 分钟前
【C++高并发内存池篇】ThreadCache 极速引擎:C++ 高并发内存池的纳秒级无锁革命!
开发语言·c++·多线程·高性能内存池
指针刺客1 小时前
嵌入式筑基之设计模式
开发语言·c++·设计模式
重启的码农2 小时前
Windows虚拟显示器MttVDD源码分析 (8) 驱动日志系统
c++·windows·操作系统
重启的码农2 小时前
Windows虚拟显示器MttVDD源码分析 (7) 命名管道IPC通信
c++·windows·操作系统
乌萨奇也要立志学C++2 小时前
【C++详解】用哈希表封装实现myunordered_map和 myunordered_set
c++·哈希算法·散列表
hansang_IR4 小时前
【算法速成课1 | 题解】洛谷P3366 【模板】最小生成树 MST(Prim & Kruskal)
c++·笔记·算法·题解·最小生成树·kruskal·prim
ajassi200012 小时前
开源 C++ QT Widget 开发(七)线程--多线程及通讯
linux·c++·qt·开源
mit6.82413 小时前
8.27 网格memo
c++·算法