[A through study notes] Fast Power

so boring

10193. "6.1 cases through a 1" sequence number of the k

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int modulo = 200907;

int qpow(int p, int q) {
    int r = 1;
    for (; q; (p *= p) %= modulo, q >>= 1)
        if (q & 1)
            (r *= p) %= modulo;
    return r;
}

int inv(int p) { return qpow(p, modulo - 2); }

signed main() {
    int T, a, b, c, k;
    cin >> T;
    while (T--) {
        cin >> a >> b >> c >> k;
        if (a + c == 2 * b) {
            cout << (a + (b - a) * (k - 1)) % modulo << endl;
        } else {
            if (k == 1)
                cout << a % modulo << endl;
            if (k == 2)
                cout << b % modulo << endl;
            if (k >= 3) {
                cout << (a * qpow(b / a, k - 1)) % modulo << endl;
            }
        }
    }
    return 0;
}

10194. "an exercise through 6.1 1" A, B power

#include <bits/stdc++.h>
using namespace std;
#define int long long
int a, b, m;
int qpow(int p, int q) {
    int r = 1;
    for (; q; (p *= p) %= m, q >>= 1)
        if (q & 1)
            (r *= p) %= m;
    return r;
}
signed main() {
    cin >> a >> b >> m;
    cout << qpow(a, b) << endl;
}

10196. "one through 6.1 Exercise 3" jailbreak

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int modulo = 100003;
int qpow(int p, int q) {
    int r = 1;
    for (; q; (p *= p) %= modulo, q >>= 1)
        if (q & 1)
            (r *= p) %= modulo;
    return r;
}

signed main() {
    int n, m;
    cin >> m >> n;
    cout << ((qpow(m, n) - qpow(m - 1, n - 1) * m) % modulo + modulo) % modulo << endl;
    return 0;
}

Guess you like

Origin www.cnblogs.com/mollnn/p/11621774.html