[Quick Power] Luogu P1965 [NOIP2013 Improved Group] Spinning Game

link————————


solution

Analyze the question and get the final xxx The coordinates
(x + m * 1 0 k(x+m10k) m o d mod m o d nnn
where1 0 k 10^k10k can be obtained by fast exponentiation.


Code

#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);
}

Guess you like

Origin blog.csdn.net/qq_42937087/article/details/115026833