QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#376206 | #7895. Graph Partitioning 2 | Link_Cut_Y | WA | 29ms | 11100kb | C++14 | 1.2kb | 2024-04-03 23:49:12 | 2024-04-03 23:49:14 |
Judging History
answer
#include <iostream>
#include <cstring>
#include <cstdio>
#include <vector>
#define int long long
#define rep(i, a, b) for (int i = (a); i <= (b); i ++ )
#define rop(i, a, b) for (int i = (a); i < (b); i ++ )
#define dep(i, a, b) for (int i = (a); i >= (b); i -- )
using namespace std;
const int N = 100010;
const int mod = 998244353;
vector<int> E[N];
int f[N][310], T, n, k, sz[N];
void dfs(int u, int fa) {
sz[u] = 1; f[u][1] = 1;
for (auto v : E[u]) if (v ^ fa) {
dfs(v, u); vector<int> g(min(sz[u] + sz[v], k + 1) + 1);
rep(i, 0, min(sz[u], k + 1))
rep(j, 0, min(sz[v], k + 1 - i))
g[i + j] = (g[i + j] + f[u][i] * f[v][j]) % mod;
rep(i, 0, min(sz[u] + sz[v], k + 1)) f[u][i] = g[i];
g.clear(); g.shrink_to_fit(); sz[u] += sz[v];
} f[u][0] = (f[u][0] + f[u][k]) % mod;
f[u][0] = (f[u][0] + f[u][k + 1]) % mod;
}
signed main() {
scanf("%lld", &T);
while (T -- ) {
scanf("%lld%lld", &n, &k);
rep(i, 1, n) E[i].clear();
rep(i, 1, n) rep(j, 0, k) f[i][j] = 0;
rop(i, 1, n) {
int a, b; scanf("%lld%lld", &a, &b);
E[a].push_back(b), E[b].push_back(a);
} if (k <= 300) {
dfs(1, 0); printf("%lld\n", f[1][0]);
} else puts("do not write");
} return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 6764kb
input:
2 8 2 1 2 3 1 4 6 3 5 2 4 8 5 5 7 4 3 1 2 1 3 2 4
output:
2 1
result:
ok 2 lines
Test #2:
score: -100
Wrong Answer
time: 29ms
memory: 11100kb
input:
5550 13 4 10 3 9 1 10 8 3 11 8 5 10 7 9 6 13 5 9 7 2 7 5 12 4 8 8 2 4 1 3 4 7 8 2 5 6 7 4 8 2 3 11 1 11 10 1 4 9 10 8 4 3 6 5 7 6 1 10 2 11 7 11 1 17 2 14 16 13 15 17 3 15 11 1 6 13 2 13 17 4 8 14 10 8 14 14 5 9 12 14 2 12 17 17 6 15 7 14 6 2 14 2 13 2 4 8 4 3 11 7 3 14 1 11 9 13 3 5 10 6 8 3 10 14 ...
output:
0 5 512 36 1 0 1 3 0 0 1 0 1 0 0 1 0 222 0 0 0 1381 1 17 6 1 2 2 0 1044 0 1 0 0 0 1 1 0 0 344 39743328 0 0 4617 2 0 1 0 1356 1 691069 152237970 3 384 0 1 0 73 0 0 0 0 0 1 0 0 0 1 0 1 1 1 421 0 0 0 2 0 0 0 2 0 1 1 1 1 1 0 0 0 1 1 0 0 77 0 5 0 2 0 2 656 0 578 0 0 208 0 1 0 0 2 0 2 4 0 1 3 0 0 12 0 1 1...
result:
wrong answer 2nd lines differ - expected: '3', found: '5'