Submission #69714453
Source Code Expand
#include<bits/stdc++.h>
#define L(i, j, k) for(int i = (j); i <= (k); i++)
#define R(i, j, k) for(int i = (j); i >= (k); i--)
#define ll long long
#define sz(a) ((int) a.size())
#define vi vector<int>
#define pb emplace_back
#define me(a, x) memset(a, x, sizeof(a))
using namespace std;
const int N = 10007, mod = 998244353, inv2 = (mod + 1) / 2;
int qpow(int x, int y = mod - 2) {
int res = 1;
for(; y; x = (ll) x * x % mod, y >>= 1) if(y & 1) res = (ll) res * x % mod;
return res;
}
int fac[N], ifac[N], inv[N];
void init(int x) {
fac[0] = ifac[0] = inv[1] = 1;
L(i, 2, x) inv[i] = (ll) (mod - mod / i) * inv[mod % i] % mod;
L(i, 1, x) fac[i] = (ll) fac[i - 1] * i % mod, ifac[i] = (ll) ifac[i - 1] * inv[i] % mod;
}
int C(int x, int y) {
return x < y || y < 0 ? 0 : (ll) fac[x] * ifac[y] % mod * ifac[x - y] % mod;
}
inline int sgn(int x) {
return (x & 1) ? mod - 1 : 1;
}
int dp[N / 2][N];
int n;
vi e[N];
int siz[N];
int sav[N];
void dfs(int x, int fa) {
dp[x][1] = 1;
siz[x] = 1;
for(auto&v : e[x]) if(v != fa) {
dfs(v, x);
me(sav, 0);
int sum = 0;
L(j, 0, siz[v] * 2)
(sum += (ll)dp[v][j] * inv[j + 1] % mod) %= mod;
L(i, 0, siz[x] * 2)
(sav[i] += (ll)dp[x][i] * sum % mod) %= mod;
L(i, 0, siz[x] * 2) {
L(j, 0, siz[v] * 2) {
(sav[i + j + 1] += (ll)dp[x][i] * dp[v][j] % mod) %= mod;
}
}
//L(i, 0, siz[x] * 2) {
// L(j, 0, siz[v] * 2) {
// (sav[i + j + 1] += mod - (ll)dp[x][i] * dp[v][j] % mod * inv[j + 1] % mod) %= mod;
// }
//}
//L(i, 0, siz[x] * 2) {
// L(j, 0, siz[v] * 2) {
// (sav[i + j + 2] += (ll)dp[x][i] * dp[v][j] % mod * inv[j + 2] % mod) %= mod;
// }
//}
swap(sav, dp[x]);
siz[x] += siz[v];
}
}
int ans;
int main() {
ios :: sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin >> n;
init(n * 2);
L(i, 1, n - 1) {
int u, v;
cin >> u >> v;
e[u].pb(v);
e[v].pb(u);
}
dfs(1, 0);
L(i, 1, n * 2) {
(ans += (ll)dp[1][i] * inv[i + 1] % mod) %= mod;
//cout << i << ' ' << dp[1][i] << ' ' << (ll)dp[1][i] * fac[n * 2] % mod << '\n';
}
ans = (ll)ans * qpow(qpow(n), n) % mod;
cout << ans << '\n';
return 0;
}
Submission Info
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
1400 / 1400 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt, 00-sample-004.txt, 00-sample-005.txt |
| All |
00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt, 00-sample-004.txt, 00-sample-005.txt, 01-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt, 01-012.txt, 01-013.txt, 01-014.txt, 01-015.txt, 01-016.txt, 01-017.txt, 01-018.txt, 01-019.txt, 01-020.txt, 01-021.txt, 01-022.txt, 01-023.txt, 01-024.txt, 01-025.txt, 01-026.txt, 01-027.txt, 01-028.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 00-sample-001.txt |
AC |
1 ms |
3720 KiB |
| 00-sample-002.txt |
AC |
1 ms |
3780 KiB |
| 00-sample-003.txt |
AC |
1 ms |
3688 KiB |
| 00-sample-004.txt |
AC |
1 ms |
3840 KiB |
| 00-sample-005.txt |
AC |
1 ms |
3828 KiB |
| 01-001.txt |
AC |
3 ms |
5364 KiB |
| 01-002.txt |
AC |
2 ms |
4736 KiB |
| 01-003.txt |
AC |
3 ms |
5412 KiB |
| 01-004.txt |
AC |
107 ms |
71412 KiB |
| 01-005.txt |
AC |
78 ms |
57048 KiB |
| 01-006.txt |
AC |
71 ms |
52808 KiB |
| 01-007.txt |
AC |
343 ms |
199720 KiB |
| 01-008.txt |
AC |
281 ms |
24080 KiB |
| 01-009.txt |
AC |
286 ms |
111704 KiB |
| 01-010.txt |
AC |
216 ms |
111700 KiB |
| 01-011.txt |
AC |
272 ms |
112040 KiB |
| 01-012.txt |
AC |
219 ms |
112372 KiB |
| 01-013.txt |
AC |
277 ms |
134348 KiB |
| 01-014.txt |
AC |
259 ms |
90280 KiB |
| 01-015.txt |
AC |
216 ms |
112328 KiB |
| 01-016.txt |
AC |
225 ms |
123808 KiB |
| 01-017.txt |
AC |
277 ms |
143716 KiB |
| 01-018.txt |
AC |
259 ms |
88548 KiB |
| 01-019.txt |
AC |
223 ms |
124092 KiB |
| 01-020.txt |
AC |
226 ms |
126992 KiB |
| 01-021.txt |
AC |
303 ms |
149928 KiB |
| 01-022.txt |
AC |
259 ms |
87004 KiB |
| 01-023.txt |
AC |
225 ms |
127152 KiB |
| 01-024.txt |
AC |
278 ms |
155780 KiB |
| 01-025.txt |
AC |
220 ms |
67888 KiB |
| 01-026.txt |
AC |
341 ms |
155984 KiB |
| 01-027.txt |
AC |
246 ms |
67956 KiB |
| 01-028.txt |
AC |
257 ms |
111912 KiB |