很简单的题目,但是题面比较难懂,如果用hash表的话需要开到比较大的地方,一天100000mile的样子
这样只有第一个case能过,难点在于这一句话
E -- that is, the maximum integer E such that it is for E days that one rides more than E miles. Eddington's own E was 87.
e是一个爱丁顿数,如果某人e天跑了超过e公里,这之中最大的那个e;也就是说9天跑了8.5公里,算为8天超过8公里,答案为8;
也可能会被认为,超过8公里的天数正好是8天,这之中最大的那个公里数8;这个最大是描述什么东西的?
又比如2016年408考试的数据机构的算法题,也是定语使用的有一些理解上的问题。
当然也可能是我英语水平有问题。
其实pat里面有一些歧义的题目,而且歧义点往往在于给出的样例也同时支持两种说法这个时候就很麻烦,因为纯粹对程序debug 是de不出来这种问题的,对于甲级来说,审题尤其重要。
对于这道题,最合理的做法是排序完之后,比较一下就行了,但如果用hash表,这道题很容易错的底裤都不剩。需要把等于变成大于等于,范围再开大一些;(会段错误)
这道题说明一个问题
1.pat 考试,审题很重要,不要一激动,写了200行,结果不知道输出什么东西。
2.请复制粘贴题目中的格式,你永远不知道他什么时候多个空格什么的。
3.最好严格按照题目的路子模拟,不要一言不合就hash或者看起来比较对实际不和题意的方法。可能会和题目的要求南辕北辙