Luogu P1965 转圈游戏

Posted luoshui-tianyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Luogu P1965 转圈游戏相关的知识,希望对你有一定的参考价值。

Luogu P1965 转圈游戏

考场上遇到这种题,一定要画图推一下。
不难得到(ans=(x+m imes 10^k)mod n).
还有就是用同余定理时一定要仔细思考一下,然后该打快速幂就打。

#include<bits/stdc++.h>

using namespace std;

int n,m,k,x;
long long ans;

long long quickPower(int b,int p,int k) {
    long long ans=1;
    if(!p) {
        ans=1%k;
        return ans;
    }
    while(p) {
        if(p%2) {
            ans=(ans*b)%k;
        }
        b=(b*b)%k;
        p/=2;
    }
    return ans;
}

int main()
{
    scanf("%d%d%d%d",&n,&m,&k,&x);
    ans=(x%n+m*quickPower(10,k,n))%n;
    printf("%lld",ans);
    return 0;
}

以上是关于Luogu P1965 转圈游戏的主要内容,如果未能解决你的问题,请参考以下文章

洛谷——P1965 转圈游戏

洛谷 P1965 转圈游戏 题解

洛谷 P1965 转圈游戏

P1965 转圈游戏

P1965 转圈游戏

P1965 转圈游戏  快速幂