官方题解|欢乐赛#38
T1
对反斜杠进行转义一下即可。
T2
可以通过字符串的方式进行读入,遇到 888 修改成 222,遇到 222 修改成 888,用 if 语句简单判断一下即可。
T3
本题只需要先对整个数组求和,然后再减去最大的元素的值的一半即。
T4
本题只要按照题目意思进行模拟判断即可,比如要拿金牌,有两种情况:
* 过题数超过金牌的 aaa
* 过题数等于金牌的 aaa,但是罚时要小于等于金牌的 bbb
同理,其余的奖项也一样讨论一下。还有一点,讨论的顺序要从金牌到铁牌,因为只拿最高奖项。
T5
假设是第 111 个球,那么有 mmm 种染色方案,那么后面的所有的球道颜色都要和前一个不一样,所以都有 m−1m - 1m−1种方案,根据乘法原理,结论是 m∗(m−1)n−1m * (m - 1) ^ {n - 1}m∗(m−1)n−1,这题不用快速幂,直接循环模拟乘法即可。
T6
在某一个时间段 ttt 内观察到的所有仙女棒,实际上是前 t−m∼tt-m \sim tt−m∼t 时间段内释放的仙女棒总和。因此,问题可以转化为:找到一个长度为 m+1m+1m+1 的时间段,使得这一时间段内释放的仙女棒数量最多。
为了让单根仙女棒在某一时间段内释放的次数达到最多,根据贪心策略,可以确定时间段的左端点应位于该仙女棒刚刚释放的时刻。假设这根仙女棒的释放间隔为 aaa,那么在长度为 m+1m+1m+1 的时间段内,这根仙女棒会释放 ⌊ma⌋+1\left\lfloor \frac{m}{a} \right\rfloor + 1⌊am ⌋+1 次。
类似地,对于两根仙女棒的情况,我们希望将时间段的左端点选在两根仙女棒同时释放的时刻。关键问题在于,这两根仙女棒是否会同时释放?如果两根仙女棒的释放间隔互为倍数,那么它们必然会同时释放;如果不是倍数关系,它们会在间隔的最小公倍数对应的时刻同时释放。因此,无论如何,两根仙女棒都会有同时释放的时刻。
综上,两个仙女棒在时间段内的总释放次数为⌊ma⌋+⌊mb⌋+2\left\lfloor \frac{m}{a} \right\rfloor + \left\lfloor \frac{m}{b} \right\rfloor + 2⌊am ⌋+⌊bm ⌋+2