A.Alexey and Train
模拟。读题不太顺。刚开始没看懂这是晚点的意思。
B.Napoleon Cake
差分,或者倒着做。差不多是个模拟了
C.Going Home
题意:给定2e5个整数,寻找里面是否有四个数满足其中两个的和等于另外两个。保证每个数小于等于2.5e6。
解:首先把和相等的式子移项,发现寻找相同的差即可。然后可以发现,差的种类数一旦超过2.5e6之后一定会有重复,再过没几个就可以找到相减元素不重复的差。主要思路显然是暴力枚举。接下来重点是如何处理重复的问题。如果把每个重复的都存下来,好像不太方便;如果拿map判来判去,再针对特殊情况处理,容易在细节上搞崩,像我一样。其实只需要把原数组排完序之后,存下每个差值遇到的第一组即可。可以发现,如果有重复的话,假设之前发现的一组是a,b,后来发现的一组是b,c,则再以后来判断是否重复的数对不可能在与a,b重复的情况下不与b,c重复。因此b,c没有用,不需要存下来。