对输入数据中不合条件的数据进行预处理,减少运行时间。
PAT(Advanced) PAT-A 1055. The World’s Richest
题目大意
给出N个人的姓名,年龄以及其拥有的财富值,进行K次查询,每次输出年龄范围[Amin,Amax]内财富排名前M个人的信息。排序优先级为财富大,年龄小,姓名字典序小。
思路
将输入的所有人按给出的规则进行排序,然后查找输出年龄范围[Amin,Amax]内的前M个人。
注意点
注意到M的取值范围是M<=100,所以必须将输入数据某个年龄中排名100以外的人去除,否则测试点2会超时。我一开始以为是查找年龄段时发生超时,尝试了二分查找最后打表记录每个年龄的数组下标,依旧会在测试点2超时。所以必须去除上面的数据。
AC代码
1 |
|