杂题,没有什么说的。
1. 题意
抽象一下题意:
求
(先使
然后,题目要求的就是
对应到原题意是什么呢?
我们假设有无穷多个这样的

蓝线是原来的反射路径,但是我们可以通过一系列的翻折,使得路径变为绿线。
变为绿线,其实已经简洁了许多。
我们假设横向的有
于是,我们可以得到:
也就是上面的式子了。
至于反射了多少次,其实就是穿过边界了多少次。
大眼观察法易得
问题转化为怎样求
首先,可以得到一个解:
然后,我们可以同时除以一个数
那么需要满足:
综上,我们其实就可以总结出这道题的答案了:
2. 代码
数据水了一点,没有卡掉 long long
。
唯一注意的是
1 | int main() |
Gitalking ...