提出 #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 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |