题目链接: 高考排名
审题发现,如果使用直接搜索肯定会超时,循环次数太多,所以不考虑。确定使用 lower_bound + 结构体来完成题目。具体思路也没问题,但是第一遍( cin 读入数据)做的时候死活过不了。。。 然后想了想,应该是数据太大吧,使用 scanf 来读入,又发现 string 必须改为 char 数组才能被读入,有重写了比较函数。整了很久才整完~呼
结果第二天,候代轩同学意外的将考好使用 int 来存储,然后就ac了,当时整个人都傻掉了,题目没有要求输出考号信息呀,前置零丢了就丢呗!(重点是审题)
后几天,想了想,还是应该用 string 来存储考号,确保信息完整,但是对于这道题目,使用 int 也可以了,所以,最后将两种做法都公布出来。。
第一种 int 考号
1 |
|
第二种 stirng 考号
1 |
|
总结,这种题目一般来讲不难,重点是抓住题目核心,能够灵活的使用 lower_bound ,尤其是特判 if(ans<n+1&&a[ans].kh==f.kh) !!!