Submission #64013380
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
constexpr int mod = 998244353;
int Add(int x, int y){ return (x + y) >= mod ? (x + y - mod) : (x + y); }
int Sub(int x, int y){ return (x - y) < 0 ? (x - y + mod) : (x - y); }
int Mul(int x, int y){ return 1ll * x * y % mod; }
int fastpow(int x, int y){
int ret = 1;
for(;y;y>>=1,x=Mul(x, x)){ if(y & 1) ret = Mul(ret, x); }
return ret;
}
const int N = 505, N_ = N * N;
int h(int x){ return (x * (x - 1)) >> 1; }
int n, m, f[N], pw[N_], pw2[N_], fact[N], inv[N];
int binom(int n, int m){ return n < m ? 0 : Mul(fact[n], Mul(inv[m], inv[n - m])); }
signed main(){
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
cin >> n >> m;
fact[0] = inv[0] = 1;
for(int i=1;i<=n;i++) fact[i] = Mul(fact[i - 1], i), inv[i] = fastpow(fact[i], mod - 2);
int ans = Mul(Sub(n, Add(m, 1)), fastpow(m, h(n)));
pw[0] = pw2[0] = 1;
for(int i=1;i<=n*n;i++) pw[i] = Mul(pw[i - 1], m);
for(int k=1;k<=m;k++){
for(int i=1;i<=n*n;i++) pw2[i] = Mul(pw2[i - 1], m - k);
for(int N=1;N<=n;N++){
f[N] = pw[h(N)];
for(int i=1;i<N;i++){
int tmp = Mul(binom(N - 1, i - 1), f[i]);
tmp = Mul(tmp, Mul(pw[h(N - i)], pw2[i * (N - i)]));
f[N] = Sub(f[N], tmp);
}
int ret = Mul(pw2[N * (n - N)], pw[h(n - N)]);
ans = Add(ans, Mul(f[N], Mul(binom(n, N), ret)));
}
}
cout << ans << '\n';
return 0;
}
// Written by xiezheyuan
Submission Info
| Submission Time |
|
| Task |
G - Many MST |
| User |
xiezheyuan |
| Language |
C++ 20 (gcc 12.2) |
| Score |
600 |
| Code Size |
1582 Byte |
| Status |
AC |
| Exec Time |
988 ms |
| Memory |
5488 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
600 / 600 |
| Status |
|
|
| Set Name |
Test Cases |
| 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_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 00_sample_00.txt |
AC |
1 ms |
3420 KiB |
| 00_sample_01.txt |
AC |
1 ms |
3416 KiB |
| 00_sample_02.txt |
AC |
1 ms |
3416 KiB |
| 01_test_00.txt |
AC |
1 ms |
3500 KiB |
| 01_test_01.txt |
AC |
1 ms |
3336 KiB |
| 01_test_02.txt |
AC |
1 ms |
3428 KiB |
| 01_test_03.txt |
AC |
83 ms |
4104 KiB |
| 01_test_04.txt |
AC |
64 ms |
3788 KiB |
| 01_test_05.txt |
AC |
32 ms |
3620 KiB |
| 01_test_06.txt |
AC |
756 ms |
4932 KiB |
| 01_test_07.txt |
AC |
731 ms |
4992 KiB |
| 01_test_08.txt |
AC |
856 ms |
5152 KiB |
| 01_test_09.txt |
AC |
837 ms |
5184 KiB |
| 01_test_10.txt |
AC |
894 ms |
5308 KiB |
| 01_test_11.txt |
AC |
692 ms |
4880 KiB |
| 01_test_12.txt |
AC |
163 ms |
3964 KiB |
| 01_test_13.txt |
AC |
104 ms |
4132 KiB |
| 01_test_14.txt |
AC |
35 ms |
3616 KiB |
| 01_test_15.txt |
AC |
122 ms |
3740 KiB |
| 01_test_16.txt |
AC |
988 ms |
5364 KiB |
| 01_test_17.txt |
AC |
986 ms |
5372 KiB |
| 01_test_18.txt |
AC |
984 ms |
5292 KiB |
| 01_test_19.txt |
AC |
5 ms |
5488 KiB |
| 01_test_20.txt |
AC |
1 ms |
3376 KiB |
| 01_test_21.txt |
AC |
1 ms |
3424 KiB |