CF652(EDU10) 题解

· · 题解

:::::warning[注释] 除特殊标记外,本文中变量均为整数。
::::: :::::info[闲话] 可能是暑假最后一篇了。
:::::

A. Gabriel and Caterpillar:

:::::info[题目基本信息] 考察:数学,模拟(800)。
题目简述:
小 K 发现了一只毛毛虫,它在第 0 天 14 点位于高度 h_1m,它在每天 10\sim22 点向上以 am/h 的速度爬,其余时间在向下以 bm/h 的速度掉,问第几天的 14 点他的高度会到达 h_2m(高度可以为负),不可能给出 -1?
数据范围:

构造一组合法解,若无解输出 Impossible。
数据范围:

数据范围:

  1. 两只蚂蚁相遇: 这种情况其实根据上面那条性质就可以搞定了,问题在于下面这一种。

  2. 一只蚂蚁从 m 到 1 或者从 1 到 m:
    这种情况由于情况 1 已经解决就比较简单了,每只蚂蚁经过 m 到 1 或 1 到 m 的次数能 \Theta(1) 求出,那么对于不同蚂蚁而言(这里以从 m 到 1 为例,1 到 m 同理):

    • 对于自己,自己的相对位置编号会减去 n-1。
    • 对于其它蚂蚁,它们的相对位置编号会加上 1。

    那么注意到这两种操作在模 n 意义下是等价的,所以统一处理即可。

所以,将原位置和终止位置排序,记录答案,统一输出即可。
时间复杂度为 \Theta(n\log n),空间复杂度为 \Theta(n)。