提出 #61251939
ソースコード 拡げる
// Go in my style.
// Not afraid to dark.
#include <bits/stdc++.h>
using namespace std;
clock_t sttime;
#define STCLOCK sttime = clock ();
#define TIMENOW fprintf (stderr, "\nNOW TIME COSSEMED: %0.4lf\n", 1.0 * (clock () - sttime) / CLOCKS_PER_SEC);
#define inline __inline__ __attribute__ ((always_inline))
#define int long long
namespace io {
int read_pos, read_dt; char read_char;
inline int read (int &p = read_pos){
p = 0, read_dt = 1; read_char = getchar ();
while (! isdigit (read_char)){
if (read_char == '-')
read_dt = - 1;
read_char = getchar ();
}
while (isdigit (read_char)){
p = (p << 1) + (p << 3) + read_char - 48;
read_char = getchar ();
}
return p = p * read_dt;
}
int write_sta[65], write_top;
inline void write (int x){
if (x < 0)
putchar ('-'), x = - x;
write_top = 0;
do
write_sta[write_top ++] = x % 10, x /= 10;
while (x);
while (write_top)
putchar (write_sta[-- write_top] + 48);
}
}
const int N = 500, mod = 998244353;
int n, m, c[N + 5][N + 5], pwm[N * N + 5], pwt[N * N + 5];
int jc[N + 5], inv[N + 5], inj[N + 5];
inline int power (int a, int p){
static int res; res = 1;
while (p > 0){
if (p & 1) res = res * a % mod;
a = a * a % mod;
p >>= 1;
}
return res;
}
inline int invn (int p){ return power (p, mod - 2); }
inline int C (int a, int b){ if (a < b) return 0; return jc[a] * inj[b] % mod * inj[a - b] % mod; }
inline int C2 (int a){ return a * (a - 1) / 2; }
signed main (){
STCLOCK
inv[1] = jc[0] = jc[1] = inj[0] = inj[1] = 1;
for (int i = 2;i <= N;++ i){
inv[i] = inv[i - mod % i] * (mod / i + 1) % mod;
inj[i] = inj[i - 1] * inv[i] % mod;
jc[i] = jc[i - 1] * i % mod;
}
io::read (n), io::read (m);
pwm[0] = 1;
for (int i = 1;i <= N * N;++ i) pwm[i] = pwm[i - 1] * m % mod;
for (int i = 0;i <= n;++ i) c[0][i] = 1;
for (int i = 1;i <= m;++ i){
pwt[0] = 1;
for (int j = 1;j <= N * N;++ j)
pwt[j] = pwt[j - 1] * (m - i) % mod;
c[i][0] = c[i][1] = 1;
for (int j = 2;j <= n;++ j){
c[i][j] = pwm[C2 (j)];
for (int k = 1;k < j;++ k)
c[i][j] -= pwm[C2 (j - k)] * C (j - 1, k - 1) % mod * c[i][k] % mod * pwt[k * (j - k)] % mod;
c[i][j] = (c[i][j] % mod + mod) % mod;
}
}
int ans = m * (n - 1) * power (m, C2 (n)) % mod;
for (int k = 1;k < m;++ k)
for (int i = 1;i <= n;++ i)
ans = (ans - C (n, i) * c[k][i] % mod * power (m - k, i * (n - i)) % mod * power (m, C2 (n - i)) % mod * (i - 1) % mod) % mod;
io::write ((ans + mod) % mod), putchar ('\n');
TIMENOW
return 0;
}
提出情報
| 提出日時 |
|
| 問題 |
G - Many MST |
| ユーザ |
good88 |
| 言語 |
C++ 20 (gcc 12.2) |
| 得点 |
600 |
| コード長 |
2959 Byte |
| 結果 |
AC |
| 実行時間 |
973 ms |
| メモリ |
9752 KiB |
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
600 / 600 |
| 結果 |
|
|
| セット名 |
テストケース |
| 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 |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 00_sample_00.txt |
AC |
5 ms |
7660 KiB |
| 00_sample_01.txt |
AC |
98 ms |
8164 KiB |
| 00_sample_02.txt |
AC |
26 ms |
7816 KiB |
| 01_test_00.txt |
AC |
22 ms |
7732 KiB |
| 01_test_01.txt |
AC |
48 ms |
7916 KiB |
| 01_test_02.txt |
AC |
35 ms |
7788 KiB |
| 01_test_03.txt |
AC |
150 ms |
8188 KiB |
| 01_test_04.txt |
AC |
195 ms |
8484 KiB |
| 01_test_05.txt |
AC |
126 ms |
8164 KiB |
| 01_test_06.txt |
AC |
829 ms |
9736 KiB |
| 01_test_07.txt |
AC |
807 ms |
9588 KiB |
| 01_test_08.txt |
AC |
879 ms |
9524 KiB |
| 01_test_09.txt |
AC |
874 ms |
9752 KiB |
| 01_test_10.txt |
AC |
888 ms |
9588 KiB |
| 01_test_11.txt |
AC |
798 ms |
9532 KiB |
| 01_test_12.txt |
AC |
335 ms |
8800 KiB |
| 01_test_13.txt |
AC |
195 ms |
8404 KiB |
| 01_test_14.txt |
AC |
203 ms |
8420 KiB |
| 01_test_15.txt |
AC |
373 ms |
8928 KiB |
| 01_test_16.txt |
AC |
973 ms |
9696 KiB |
| 01_test_17.txt |
AC |
972 ms |
9628 KiB |
| 01_test_18.txt |
AC |
972 ms |
9628 KiB |
| 01_test_19.txt |
AC |
5 ms |
7848 KiB |
| 01_test_20.txt |
AC |
4 ms |
7788 KiB |
| 01_test_21.txt |
AC |
480 ms |
9668 KiB |