1 条题解

  • 0
    @ 2023-1-16 9:01:26

    快速幂模板。

    // Copyright 2023 Lotuses
    #include <cstdio>
    #include <cstring>
    #include <vector>
    
    #define gc getchar()
    template<typename T>
    void read(T &r) {
        r = 0; static char ch, last;
        ch = gc, last = 'z';
        while (ch < '0' || ch > '9') last = ch, ch = gc;
        while (ch >= '0' && ch <= '9') r = (r << 1) + (r << 3) + (ch ^ 48), ch = gc;
        r = (last == '-') ? -r : r;
    }
    
    template<typename T, typename...Ts>
    void read(T &arg, Ts&...arg_left) {
        read(arg);
        read(arg_left...);
    }
    
    #define int long long
    
    int qpow(int a, int b, int p) {
        int base = a, ans = 1;
        do  {
            if (b & 1) ans *= base, ans %= p;
            base *= base; base %= p;
        } while (b >>= 1);
        return ans;
    }
    
    signed main() {
        #ifdef LOCAL
            freopen(".in", "r", stdin);
            freopen(".out", "w", stdout);
        #endif
    
        int p, a, b;
        read(p, a, b);
        printf("%lld\n", qpow(a, b, p));
        return 0;
    }
    
    
    • 1

    信息

    ID
    28
    时间
    1000ms
    内存
    128MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者