HNOI2008 越狱

HydroOJ の 题目链接

运用容斥原理,越狱的情况总数等于所有的情况减去不越狱的情况。
所有的情况为 \(m^n\),不越狱的情况为 \(m(m-1)^{(n-1)}\)。

快速幂求解相减即可

AC Code
#include <bits/stdc++.h>
using namespace std;
const int MOD = 100003;
typedef long long ll; 
ll n, m;

template <typename T>
void read(T &t) {
    t = 0; T m = 1; char ch = getchar();
    while(ch < '0' || ch > '9') { if(ch == '-') m = -1; ch = getchar(); }
    while(ch >= '0' && ch <= '9') { t = (t << 3) + (t << 1) + (ch & 15); ch = getchar(); }
    t *= m;
}

ll Pow(ll a, ll p) {
    ll ans = 1;  a %= MOD;
    while(p) {
        if(p % 2 == 1) ans = ans * a % MOD;
        a = a * a % MOD; p >>= 1; 
    }
    return ans % MOD;
}


int main() {
    read(m), read(n); 
    ll A = Pow(m, n), B = (Pow(m - 1, n - 1) * (m % MOD)) % MOD;
    printf("%lld\n", ((A + MOD) - B) % MOD);
    return 0;
}
上一篇:Spring5.2.x-02-日志体系


下一篇:Gym 237040F 线段树:区间修改,区间查询