参考问题 1:[WC2015] 未来程序中的 Task 6。
参考问题 2:[十二省联考 2019] 骗分过样例中的 Task 1wa_998244353\texttt{1wa\_998244353}1wa_998244353。
可以发现,这两个问题都等价于自然溢出后取余,而其循环节远远达不到取余的较小余数。
考察如下问题:
设 trans(x)=((S×x) mod A+D) mod B\text{trans}(x) = ((S\times x)\bmod A + D)\bmod Btrans(x)=((S×x)modA+D)modB。
给定 A,B,D,S,a0(D<B<A)A,B,D,S,a_0(D < B < A)A,B,D,S,a0(D<B<A),对于序列 aaa 有 ai=trans(ai−1)a_i = \text{trans}(a_{i-1})ai=trans(ai−1)。
估计 aaa 的循环节长度的量级。