提出 #55072104


ソースコード 拡げる

#include <bits/stdc++.h>
#define endl '\n'

using namespace std;
using i64 = long long;

template<class T>
constexpr T power(T a, i64 b) {
    T res = 1;
    while (b) {
        if (b & 1) {
            res = res * a;
        }
        b >>= 1;
        a = a * a;
    }
    return res;
}

template<i64 P>
struct ModInt {
    i64 x;
    constexpr ModInt() : x{} {}
    constexpr ModInt(i64 x) : x{norm(x % P)} {}
    constexpr i64 norm(i64 x) const {
        if (x >= P) {
            x -= P;
        } else if (x < 0) {
            x += P;
        }
        return x;
    }
    constexpr i64 val() const {
        return x;
    }
    constexpr ModInt operator-() const {
        ModInt res;
        res.x = norm(P - x);
        return res;
    }
    constexpr ModInt inv() const {
        return power(*this, P - 2);
    }
    constexpr ModInt operator+=(ModInt rhs) & {
        x = norm(x + rhs.x);
        return *this;
    }
    constexpr ModInt operator-=(ModInt rhs) & {
        x = norm(x - rhs.x);
        return *this;
    }
    constexpr ModInt operator*=(ModInt rhs) & {
        x = norm(x * rhs.x % P);
        return *this;
    }
    constexpr ModInt operator/=(ModInt rhs) & {
        return *this *= rhs.inv();
    }
    friend constexpr ModInt operator+(ModInt lhs, ModInt rhs) {
        ModInt res = lhs;
        res += rhs;
        return res;
    }
    friend constexpr ModInt operator-(ModInt lhs, ModInt rhs) {
        ModInt res = lhs;
        res -= rhs;
        return res;
    }
    friend constexpr ModInt operator*(ModInt lhs, ModInt rhs) {
        ModInt res = lhs;
        res *= rhs;
        return res;
    }
    friend constexpr ModInt operator/(ModInt lhs, ModInt rhs) {
        ModInt res = lhs;
        res /= rhs;
        return res;
    }
    friend constexpr bool operator==(ModInt lhs, ModInt rhs) {
        return lhs.val() == rhs.val();
    }
    friend constexpr bool operator!=(ModInt lhs, ModInt rhs) {
        return lhs.val() != rhs.val();
    }
    friend constexpr istream &operator>>(istream &is, ModInt &a) {
        i64 v;
        is >> v;
        a = ModInt(v);
        return is;
    }
    friend constexpr ostream &operator<<(ostream &os, const ModInt &a) {
        return os << a.val();
    }
};

using mint = ModInt<998244353>;

i64 n, k;

int main() {
    ios::sync_with_stdio(false), cin.tie(0);
    cin >> n >> k;
    mint x = 2 / (mint)(n * n), y = (mint)(n * n - 2 * n) / (mint)(n * n);
    mint a = 1, b = 0;
    while (k--) {
        a = x + y * a, b = x + y * b;
    }
    cout << a * 1 + b * (mint)(n * (n + 1) / 2 - 1) << endl;
    return 0;
}

提出情報

提出日時
問題 E - Random Swaps of Balls
ユーザ NoobDidi
言語 C++ 20 (gcc 12.2)
得点 450
コード長 2719 Byte
結果 AC
実行時間 2 ms
メモリ 3600 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 450 / 450
結果
AC × 3
AC × 31
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_internal_00.txt, 01_internal_01.txt, 01_internal_02.txt, 01_internal_03.txt, 01_internal_04.txt, 01_internal_05.txt, 01_internal_06.txt, 01_internal_07.txt, 01_internal_08.txt, 01_internal_09.txt, 01_internal_10.txt, 01_internal_11.txt, 01_internal_12.txt, 01_internal_13.txt, 01_internal_14.txt, 01_internal_15.txt, 01_internal_16.txt, 01_internal_17.txt, 01_internal_18.txt, 01_internal_19.txt, 01_internal_20.txt, 01_internal_21.txt, 01_internal_22.txt, 01_internal_23.txt, 01_internal_24.txt, 01_internal_25.txt, 01_internal_26.txt, 01_internal_27.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 1 ms 3452 KiB
00_sample_01.txt AC 1 ms 3452 KiB
00_sample_02.txt AC 1 ms 3424 KiB
01_internal_00.txt AC 1 ms 3468 KiB
01_internal_01.txt AC 1 ms 3596 KiB
01_internal_02.txt AC 1 ms 3416 KiB
01_internal_03.txt AC 1 ms 3456 KiB
01_internal_04.txt AC 1 ms 3396 KiB
01_internal_05.txt AC 2 ms 3416 KiB
01_internal_06.txt AC 1 ms 3520 KiB
01_internal_07.txt AC 1 ms 3600 KiB
01_internal_08.txt AC 2 ms 3384 KiB
01_internal_09.txt AC 1 ms 3412 KiB
01_internal_10.txt AC 1 ms 3440 KiB
01_internal_11.txt AC 1 ms 3444 KiB
01_internal_12.txt AC 2 ms 3440 KiB
01_internal_13.txt AC 1 ms 3440 KiB
01_internal_14.txt AC 1 ms 3596 KiB
01_internal_15.txt AC 2 ms 3452 KiB
01_internal_16.txt AC 2 ms 3392 KiB
01_internal_17.txt AC 1 ms 3392 KiB
01_internal_18.txt AC 1 ms 3408 KiB
01_internal_19.txt AC 1 ms 3384 KiB
01_internal_20.txt AC 1 ms 3384 KiB
01_internal_21.txt AC 1 ms 3600 KiB
01_internal_22.txt AC 1 ms 3592 KiB
01_internal_23.txt AC 1 ms 3460 KiB
01_internal_24.txt AC 2 ms 3456 KiB
01_internal_25.txt AC 1 ms 3448 KiB
01_internal_26.txt AC 1 ms 3452 KiB
01_internal_27.txt AC 1 ms 3464 KiB