PAT A1095
时间:2022-05-11 13:02
30分的题,喜大普奔
总思路的话,就是读入一堆信息以后,先按id/time(这个的意思是先排序Id,再排序time)的顺序sort一下,然后找两两配对放进一个数组里,这个时候你也要记录下时间来。然后跑一遍那个数组就可以找出所有最大。至于询问的话就跑一遍那个时间数组。
这个题想想思路也不是很费劲嘛,就提几个注意点吧。
-
这个是我当时的一个坑,就是如果那个车没有匹配的in & out,它都不会参与数车,也就是说,这个筛选你需要在所有东西之前进行
-
要注意同一辆车可能要开进来很多次,所以你得去找map里的匹配,然后去加,而不是每次都重新找一个匹配。 -
这个题一个卡时间的地方就是询问。其实询问是升序的话就跑一遍就可以了
tips:
-
把时间变成秒可以简化很多!!!!这是处理时间的一个技巧。
-
如果只需要输出一个最大值(可能是按某种排序排出来的),那只需要跑一遍数组就可以、(一直记录一个maxn)
如果需要全部输入那就得跑两遍,先找maxn,再找所有与maxn相等的值(但是你可以输入的时候就把那个maxn找出来) -
printf不能直接输出char *类型,所以你需要一个函数:
*啊,要注意iterator的写法
#include
#include
#include
#include