Problem
给定\(n,m,k,x\),\(x\)每次会变成\((x + m) \bmod n\),称为1次变换,求经过\(10^k\)次变换后\(x\)的值。
\(n \le 10^6,m < n,k,x \le 10^9\)。
Solution
看见\(n\)数据范围显然可以想到整循环节,但是我们不会推,咋办,发现求循环节至多\(\mathcal{O}(n)\),求完之后相当于求\(10^k \bmod t\)所对应的值,\(t\)即循环节长度,所以时间复杂度为\(\mathcal{O}(n + \log{k})\),不过\(t\)好像是可以\(\mathcal{O}(1)\)。