首页 > 其他 > 详细

[NOIP2013]转圈游戏

时间:2019-03-23 12:12:12      阅读:117      评论:0      收藏:0      [点我收藏+]

题目链接

emmmm2013提高组的原题。用一句话来说就是几个小朋友转圈圈爱的魔力转圈圈,一般来讲看到圈圈就是断环成链或者mod,然后这道题很明显是后者。无限制转圈根据数据的大小决定是模拟还是什么奇奇怪怪的算法。由于10k的步数,当然是快速幂。

简单推导一下可以得到删去重复走的一圈又一圈的绝对距离为 (x+m*10K%n)%n,直接套进去。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
long long read(){
    long long res=0,f=1;
    char ch=getchar();
    while(ch<0||ch>9){
        if(ch==-)f=-1;
        ch=getchar();
    }
    while(ch>=0&&ch<=9){
        res=res*10+(ch-0);
        ch=getchar();
    }
    return res*f;
}
long long mod;
long long n,m,k,x;
long long ksm(long long d,long long z){
    d%=mod;
    if(z==0)return 1ll;
    if(z%2){
        return (ksm(d,z/2)%mod*(ksm(d,z/2)%mod*d%mod)%mod)%mod;
    }
    else return (ksm(d,z/2)%mod*ksm(d,z/2)%mod)%mod;
}
int main(){
mod=read();m=read();k=read();x=read();
cout<<(x+m*ksm(10,k)%mod)%mod;
return 0;
}

 

[NOIP2013]转圈游戏

原文:https://www.cnblogs.com/clockwhite/p/10583244.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!