提出 #58778180


ソースコード 拡げる

#include<bits/stdc++.h>
#define rep(i, n) for(int i = 0; i < (n); ++i)
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pii;
const int Mod = 998244353;
inline void uadd(int &a, const int &b){ a += b - Mod; a += (a>>31) & Mod; }
inline int add(int a, const int &b){ a += b - Mod; a += (a>>31) & Mod; return a; }
inline void usub(int &a, const int &b){ a -= b; a += (a>>31) & Mod; }
inline int sub(int a, const int &b){ a -= b, a += (a>>31) & Mod; return a; }
inline void umul(int &a, const int &b){ a = (int)(1ll * a * b % Mod); }
inline int mul(const int &a, const int &b){ return (int)(1ll * a * b % Mod); }
int qpow(int b, ll p){ int ret = 1; while(p){ if(p & 1) umul(ret, b); umul(b, b), p >>= 1; } return ret; }
const int fN = 10010;
int fact[fN], invfact[fN], inv[fN];
void initfact(int n){
	fact[0] = 1; for(int i = 1; i <= n; ++i) fact[i] = mul(fact[i - 1], i);
	invfact[n] = qpow(fact[n], Mod - 2); for(int i = n; i > 0; --i) invfact[i - 1] = mul(invfact[i], i);
	for(int i = 1; i <= n; ++i) inv[i] = mul(invfact[i], fact[i - 1]);
}
inline int binom(int n, int m){ return mul(fact[n], mul(invfact[m], invfact[n - m])); }

const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3fll;
template<typename T> inline void chmax(T &_a, const T &_b){ (_b>_a) ? (_a=_b) : _a; }
template<typename T> inline void chmin(T &_a, const T &_b){ (_b<_a) ? (_a=_b) : _a; }

int n, m;

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);

	cin >> n >> m;
	int len = mul(m, m);
	int h = 0;
	for(int i = 1; i <= n; ++i) uadd(h, qpow(i, Mod - 2));
	cout << sub(mul(mul(2, len), mul(n, h)), len) << "\n";

	return 0;
}

提出情報

提出日時
問題 D - Random Walk on Tree
ユーザ bear0131
言語 C++ 20 (gcc 12.2)
得点 800
コード長 1692 Byte
結果 AC
実行時間 26 ms
メモリ 3604 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 800 / 800
結果
AC × 2
AC × 23
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 02_random_max_00.txt, 02_random_max_01.txt, 02_random_max_02.txt, 02_random_max_03.txt, 02_random_max_04.txt, 02_random_max_05.txt, 02_random_max_06.txt, 02_random_max_07.txt, 02_random_max_08.txt, 02_random_max_09.txt, 03_min_00.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 1 ms 3348 KiB
00_sample_01.txt AC 16 ms 3556 KiB
01_random_00.txt AC 7 ms 3464 KiB
01_random_01.txt AC 13 ms 3468 KiB
01_random_02.txt AC 21 ms 3468 KiB
01_random_03.txt AC 16 ms 3604 KiB
01_random_04.txt AC 2 ms 3476 KiB
01_random_05.txt AC 19 ms 3424 KiB
01_random_06.txt AC 15 ms 3464 KiB
01_random_07.txt AC 5 ms 3396 KiB
01_random_08.txt AC 3 ms 3392 KiB
01_random_09.txt AC 10 ms 3412 KiB
02_random_max_00.txt AC 25 ms 3464 KiB
02_random_max_01.txt AC 26 ms 3472 KiB
02_random_max_02.txt AC 25 ms 3480 KiB
02_random_max_03.txt AC 25 ms 3472 KiB
02_random_max_04.txt AC 25 ms 3424 KiB
02_random_max_05.txt AC 26 ms 3472 KiB
02_random_max_06.txt AC 26 ms 3412 KiB
02_random_max_07.txt AC 26 ms 3396 KiB
02_random_max_08.txt AC 25 ms 3464 KiB
02_random_max_09.txt AC 25 ms 3348 KiB
03_min_00.txt AC 1 ms 3464 KiB