1. 程式人生 > >[NOIP 2013] 轉圈遊戲

[NOIP 2013] 轉圈遊戲

lan sin 時間復雜度 power its clu 不難 .org 代碼

[題目鏈接]

https://www.luogu.org/problemnew/show/P1965

[算法]

不難看出答案為(x + m10^k) % n

用快速冪求解即可

時間復雜度 :O(log K)

[代碼]

#include<bits/stdc++.h>
using namespace std;

int n,m,k,x;

inline int power(int a,int n,int p)
{
        int b = a,res = 1;
        while (n > 0)
        {
                
if (n & 1) res = 1ll * res * b % p; b = 1ll * b * b % p; n >>= 1; } return res; } int main() { scanf("%d%d%d%d",&n,&m,&k,&x); printf("%d\n",(x + m * power(10,k,n)) % n); return 0; }

[NOIP 2013] 轉圈遊戲