【快速幂】洛谷P1965 [NOIP2013 提高组] 转圈游戏

link————————


分析题目,得到最终 x x x 的坐标为
( x + m ∗ 1 0 k ) (x+m*10^k) (x+m10k) m o d mod mod n n n
其中 1 0 k 10^k 10k 用快速幂求即可。


代码

#include<cstdio>
long long n, m, k, x, move;
long long ksm(long long kk){
    
    
	if(kk == 0) return 1;
	if(kk == 1) return 10;
	long long l = ksm(kk>>1);
	if(kk % 2 == 1) return l * l * 10 % n;
	return l * l % n;
}
int main(){
    
    
	scanf("%lld%lld%lld%lld", &n, &m, &k, &x);
	printf("%lld", (x + m * ksm(k)) % n);
}

猜你喜欢

转载自blog.csdn.net/qq_42937087/article/details/115026833