【PAT甲级】排序题专题复习

本文主要复习了PAT甲级考试中的排序题目,强调了固定模式的处理,如使用unordered_map优化查询效率,以及注意题目的具体要求。还列举了部分普通题库(1001-1136)和真题题库(近三年)的题目,提醒在处理姓名排序时避免使用string,并提供了解题技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

固定模式

要排序的量一般放在一个或多个向量的结构体、unordered_map或者set中,然后定义一个或多个cmp函数。(具体是几个就看题目将排序对象分成几种、有几个判断依据)。

坑点

1.最好直接用unordered_map代替map,就不会有查询超时
2.题目的要求都会有测试点,所以要好好读题,归纳出每种情况,想好再写,代码的复杂度其实不高的

普通题库(1001-1136)

  • 1012 The Best Rank (25)
    因为科目是固定的,而且要经过多次排序,就直接定义好数组方便访问:
    struct node {

        int id, best;
    
        int score[4], rank[4];

    }stu[2005];
  • 1025 PAT Ranking (25)
    //10位数以内可以用int,长了就用long long
    
    //搞排名的时候,可以先写定第一项,后面的靠判断:
    v[0].locarank = 1;
    fin.push_back(v[0]);
    for(int j = 1; j < m; j++) {
         v[j].locarank = (v[j].score == v[j - 1].score) ? (v[j - 1].locarank) : (j + 1);
         fin.push_back(v[j]);
    }
    
    //考生编号可能前头有0,0也要要输出:
    %013lld //输出long long格式的数"
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值