ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#168555 | #9. 小h的树 | wuzr | 100 | 138ms | 33364kb | C++ | 1.7kb | 2023-02-07 11:26:15 | 2023-02-07 11:26:16 |
answer
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define per(i,a,b) for(int i=a;i>=b;i--)
ll rd() {
ll now = 0, f = 1;
char c = getchar();
while ('0' > c || c > '9') {
if (c == '-') f = -1;
c = getchar();
}
while ('0' <= c && c <= '9') now = now * 10 + c - 48, c = getchar();
return now * f;
}
void wr(ll x) {
if (x < 0) x = -x, putchar('-');
if (x > 9) wr(x / 10);
putchar(x % 10 + 48);
return ;
}
const int N = 3005, inf = 1e9;
struct E {
int to, nxt, w;
} e[N << 1];
int n, k, sz[N], dp[N][N][3], head[N], cnt;
void add(int x, int y, int z) {
e[++cnt] = {y, head[x], z};
head[x] = cnt;
}
void merge(int x, int y, int len) {
rep(i, sz[x] + 1, sz[x] + sz[y]) dp[x][i][0] = dp[x][i][1] = dp[x][i][2] = inf;
per(i, sz[x], 1) rep(j, 1, sz[y]) {
dp[x][i + j][0] = min(dp[x][i + j][0], dp[x][i][0] + dp[y][j][0] + len * 2);
dp[x][i + j][1] = min(dp[x][i + j][1], dp[x][i][1] + dp[y][j][0] + len * 2);
dp[x][i + j][1] = min(dp[x][i + j][1], dp[x][i][0] + dp[y][j][1] + len);
dp[x][i + j][2] = min(dp[x][i + j][2], dp[x][i][2] + dp[y][j][0] + len * 2);
dp[x][i + j][2] = min(dp[x][i + j][2], dp[x][i][1] + dp[y][j][1] + len);
dp[x][i + j][2] = min(dp[x][i + j][2], dp[x][i][0] + dp[y][j][2] + len * 2);
}
sz[x] += sz[y];
}
void dfs(int x, int fa) {
sz[x] = 1;
for (int i = head[x]; i; i = e[i].nxt) {
int v = e[i].to;
if (v == fa) continue;
dfs(v, x);
merge(x, v, e[i].w);
}
}
signed main() {
n = rd(), k = rd();
rep(i, 2, n) {
int x = rd(), y = rd(), z = rd();
add(x, y, z), add(y, x, z);
}
dfs(1, 1);
int ans = inf;
rep(i, 1, n) if (sz[i] >= k) ans = min(ans, dp[i][k][2]);
cout << ans;
return 0;
}
Details
小提示:点击横条可展开更详细的信息
Test #1:
score: 10
Accepted
time: 0ms
memory: 1192kb
input:
10 7 1 2 35129 2 3 42976 3 4 24497 2 5 83165 1 6 4748 5 7 38311 4 8 70052 3 9 3561 8 10 80238
output:
184524
result:
ok 1 number(s): "184524"
Test #2:
score: 10
Accepted
time: 27ms
memory: 1300kb
input:
3000 3000 1 2 80232 1 3 31904 1 4 24318 1 5 70898 1 6 54285 1 7 99203 1 8 36858 1 9 52269 1 10 21554...
output:
293195939
result:
ok 1 number(s): "293195939"
Test #3:
score: 10
Accepted
time: 0ms
memory: 1312kb
input:
50 32 1 2 78088 1 3 59372 2 4 12219 3 5 17188 2 6 51314 3 7 72028 3 8 1593 4 9 65442 5 10 97450 6 11...
output:
1758096
result:
ok 1 number(s): "1758096"
Test #4:
score: 10
Accepted
time: 0ms
memory: 1292kb
input:
50 48 1 2 60240 2 3 71246 3 4 21134 2 5 75461 5 6 4274 6 7 87233 6 8 74521 4 9 81504 8 10 23918 5 11...
output:
3245532
result:
ok 1 number(s): "3245532"
Test #5:
score: 10
Accepted
time: 0ms
memory: 1668kb
input:
200 36 1 2 95675 1 3 46068 3 4 92249 2 5 79443 4 6 11920 6 7 28895 4 8 25231 5 9 82622 8 10 34349 8 ...
output:
1214282
result:
ok 1 number(s): "1214282"
Test #6:
score: 10
Accepted
time: 0ms
memory: 1776kb
input:
200 35 1 2 97551 2 3 27011 2 4 14709 1 5 27407 2 6 57345 5 7 63132 7 8 89143 4 9 30986 5 10 89545 7 ...
output:
1341305
result:
ok 1 number(s): "1341305"
Test #7:
score: 10
Accepted
time: 30ms
memory: 1296kb
input:
3000 666 1 2 65806 1 3 53490 1 4 43794 1 5 63048 1 6 10670 1 7 56872 1 8 71919 1 9 78642 1 10 9831 1...
output:
14876698
result:
ok 1 number(s): "14876698"
Test #8:
score: 10
Accepted
time: 28ms
memory: 33364kb
input:
3000 1633 1 2 73534 2 3 97254 3 4 96323 4 5 88456 5 6 287 6 7 7380 7 8 63246 8 9 57273 9 10 23915 10...
output:
74678010
result:
ok 1 number(s): "74678010"
Test #9:
score: 10
Accepted
time: 25ms
memory: 1548kb
input:
3000 2612 1 2 85560 1 3 99187 1 4 40779 1 5 70190 1 6 50395 1 7 9810 1 8 87504 1 9 600 1 10 78858 1 ...
output:
231082152
result:
ok 1 number(s): "231082152"
Test #10:
score: 10
Accepted
time: 28ms
memory: 26840kb
input:
3000 858 1 2 51625 1 3 28801 1 4 85825 3 5 92506 5 6 76389 4 7 74801 3 8 49889 6 9 81981 9 10 73122 ...
output:
38161665
result:
ok 1 number(s): "38161665"
Extra Test:
score: 0
Extra Test Passed