PAT第一讲

首先要确定题目是单点测试还是多点测试,多数为单点测试。
本次内容涉及结构体排序(1004)、进制转换(1022)、人数统计(1038)括号内传送门


结构体排序---关键在熟练掌握sort方法

 https://www.cnblogs.com/AlvinZH/p/6784862.html这里对sort有详细的介绍和实例。

需要注意的地方:这类题目中可能会要求二次排序,即学生成绩相等时,以姓名字典序输出。这种情况在cmp中多加一步判断即可:


bool cmp(stu a , stu b ){
    if(a.scord!=b.scord)
    return a.scord<b.scord;
    return a.id<b.id;
}

进制转换---关键在了解进制转换的步骤

      十进制数转X进制,步骤就是模X取余,再对商模X取余,如此反复直到最后的商小于X,再倒序把余数依次排列即可。以十转十六为例:

1421 除以 16 , 商 88, 余数 13,取 13 (16进制 d)
88 除以16, 商 5 余数 8,取 8
5 除以 16, 商 0, 余数 5,取 5
结果:16进制 0x58d

      需要注意的地方:对于题目给定的A 和 B (≤2​^30​​−1),两点补充:

  1. 这是在int范围内的,但其他情况下可能出现溢出,比如A*B这个家伙就很危险;若给定A 和 B (≤2​^31-1),则A+B也可能溢出,int范围为-2^31~2^31-1。此时需要用到long long保存A+B的值,这一点很重要。
  2. 参数在1*10^10以内,可以用int,超过这一范围就要用long long(-2^64~2^64-1)。

人数统计---关键在想到哈希

在需要统计某参数的个数的题目中,如果这个参数数量级不是特别大,把这个参数当作下标,哈希一下是最简单有效的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值