腿毛
思路:
题目描述的很夸张,弄一堆什么腿毛围一圈做游戏(其实就是给定一个指定的位置,每次走 m ,一共走 10^k 次)然后问最后的位置。
考试的时候脑子不够用,还把转回来的周期算出来,但其实根本多余,只要记录出总共走的距离,膜上 n 就好,但问题是 10^9 ,朴素绝对会超,于是我们只要一个快速幂
快速幂代码
#include<stdio.h> #define ll long long int n,m,k,x; ll ksmi(ll a,ll d) { ll s=1; while(d>0) { if(d&1) s=s*a%n; a=a*a%n; d>>=1; } return s%n; } int main() { scanf("%d%d%d%d",&n,&m,&k,&x); printf("%d",(x+m*ksmi(10,k)%n)%n); return 0; }
从0到1很难,但从1到100很容易