zoukankan      html  css  js  c++  java
  • P1965 转圈游戏

    很容易可以得到,答案应该是(x+m*10^k)%n
    很显然,用O(n)一定会卡爆,所以用快速幂来算,或者找一下循环节也是可以的。

    #include <bits/stdc++.h>
    using namespace std;
    int Fact(int x, int n, int mod) {
        int ans = 1;
        while(n) {
            if(n & 1) ans = ans * x % mod;
            x = x * x % mod;
            n >>= 1;
        }
        return ans;
    }
    int main(int argc, char const *argv[])
    {
        int n, m, k, x;
        cin >> n >> m >> k >> x;
        cout << ((x%n) + ((m%n)*Fact(10, k, n))%n)%n;
        return 0;
    }
    
  • 相关阅读:
    C++ 日期 & 时间
    C++ 引用
    C++ 指针
    C++ 字符串
    C++ 数组
    C++ 数字
    C++ 函数
    C++ 判断
    C++ 循环
    C++ 运算符
  • 原文地址:https://www.cnblogs.com/gengchen/p/6013258.html
Copyright © 2011-2022 走看看