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

P1965 [NOIP2013 提高组] 转圈游戏

作者:互联网

明显一次操作会让一个小朋友向右位移 \(m\) 位,即变成 \((x+m)\bmod n\)。

所以 \(10^k\) 次操作之后就是 \((x+m\times 10^k)\bmod n\)

#include<bits/stdc++.h>
using namespace std;
#define int long long
int ksm(int a,int b,int mod){
	if(b==1)return a;
	int ans=ksm(a,b>>1,mod);
	if(b&1){
		return ans*ans%mod*a%mod;
	}
	else return ans*ans%mod;
}
signed main(){
	int n,m,k,x;cin>>n>>m>>k>>x;
	cout<<(x+(m*ksm(10,k,n))%n)%n;
	return 0;
} 

标签:NOIP2013,int,bmod,转圈,ans,P1965,return,ans%,mod
来源: https://www.cnblogs.com/kkksc0100/p/circle-round-fuck.html