其他分享
首页 > 其他分享> > P1965 [NOIP2013 提高组] 转圈游戏

P1965 [NOIP2013 提高组] 转圈游戏

作者:互联网

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)\)。

标签:10,le,NOIP2013,变换,bmod,转圈,循环,P1965,mathcal
来源: https://www.cnblogs.com/luyiming123blog/p/15253532.html