腿毛

  

    


 思路:

题目描述的很夸张,弄一堆什么腿毛围一圈做游戏(其实就是给定一个指定的位置,每次走 m ,一共走 10^k 次)然后问最后的位置。

考试的时候脑子不够用,还把转回来的周期算出来,但其实根本多余,只要记录出总共走的距离,膜上 n 就好,但问题是 10^9 ,朴素绝对会超,于是我们只要一个快速幂

 

快速幂代码

#include<stdio.h>
#define ll long long 
int n,m,k,x;

ll ksmi(ll a,ll d)
{
    ll s=1;
    while(d>0)
    {
        if(d&1) s=s*a%n;
        a=a*a%n;
        d>>=1;
    }
    return s%n;
}

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

 

posted @ 2018-08-28 22:39  qseer  阅读(115)  评论(0编辑  收藏  举报