#P15858. [Roi2026]特梅利亚调查

[Roi2026]特梅利亚调查

题目描述

特梅利亚是北方最强大的王国之一,首都是维吉玛城。住在维吉玛城的女术士特莉丝发现了强大的魔法异常,于是决定调查特梅利亚王国,寻找异常的源头。

特梅利亚有 nn 座城市,编号为 11nn,首都维吉玛编号为 11。这些城市由 n1n-1 条双向道路连接,第 ii 条道路连接城市 uiu_iviv_i,长度为 wiw_i。保证仅通过这些道路,可以从任意城市到达任意其他城市。

特莉丝计划从维吉玛出发,访问所有 nn 座城市,最后回到维吉玛。她可以沿道路步行,但这很慢。她还有 kk 个传送水晶,可以用来在城市之间瞬间移动。

在任意时刻,特莉丝可以把一个水晶留在当前所在城市。之后,她可以使用之前留下的某个水晶,瞬间沿最短路径返回到放置该水晶的城市。使用后,该水晶会被摧毁。特莉丝可以以任意顺序放置和使用水晶。

不过,传送会留下痕迹。具体来说,如果特莉丝在城市 aa 使用水晶并到达城市 bb,那么从 aabb 的最短路径上的所有城市,包括 aabb,都会留下魔法痕迹。之后,任何其他传送路线都不能经过已经留下魔法痕迹的城市。

请帮助特莉丝。对于每个 j=1,2,,kj=1,2,\ldots,k,求出在使用不超过 jj 个水晶的情况下,为了访问所有城市并回到维吉玛,特莉丝需要步行的最小总距离。

输入格式

第一行包含两个整数 n,kn,k,分别表示城市数量和特莉丝拥有的传送水晶数量。

接下来 n1n-1 行,每行包含三个整数 ui,vi,wiu_i,v_i,w_i,表示第 ii 条道路连接城市 uiu_iviv_i,长度为 wiw_i

输出格式

输出 kk 个整数,其中第 jj 个数表示使用不超过 jj 个水晶时需要步行的最小距离。

这些整数可以用空格或换行分隔。

数据范围

  • 2n5000002\le n\le 500000
  • 1kn1\le k\le n
  • 1ui,vin1\le u_i,v_i\le n
  • 1wi1091\le w_i\le 10^9
  • 给出的图是一棵树。

子任务

记号「题面测试」表示该子任务还要求通过题面中的测试数据。

子任务 分值 附加限制 依赖子任务
1 9 n150000, k=1n\le 150000,\ k=1
2 5 n100n\le 100 题面测试
3 10 n5000n\le 5000 题面测试,2
4 9 n150000, k300n\le 150000,\ k\le 300 题面测试,1-2
5 11 n150000n\le 150000,完全二叉树,wi=1w_i=1
6 n150000n\le 150000wi=1w_i=1 5
7 15 n150000n\le 150000,特殊图
8 12 n150000n\le 150000,每座城市连出的道路不超过 1010
9 11 n150000n\le 150000 题面测试,1-8
10 4 n300000n\le 300000 题面测试,1-9
11 3 n500000n\le 500000 题面测试,1-10

完全二叉树指由 2s12^s-1 个点组成的树,即 n=2s1n=2^s-1,并且对于每个 i=1,2,,2s11i=1,2,\ldots,2^{s-1}-1,都存在两条边 (i,2i)(i,2i)(i,2i+1)(i,2i+1)

特殊图指由奇数个点组成的树,并且对于每个 i=1,2,,n12i=1,2,\ldots,\frac{n-1}{2},都存在两条边 (1,2i)(1,2i)(2i,2i+1)(2i,2i+1)

样例 1

输入

5 1
1 2 1
1 3 1
3 4 1
3 5 1

输出

6

样例 2

输入

10 2
1 2 10
2 3 6
3 4 8
4 6 5
6 10 7
4 8 6
3 7 6
1 5 4
1 9 9

输出

86
85

样例说明

样例 1 中,一个最优路线如下:特莉丝在城市 11 放置水晶,然后沿路线

1 -> 2 -> 1 -> 3 -> 4 -> 3 -> 5

行走,最后使用水晶,瞬间回到城市 11

样例 2 中,对于使用不超过 11 个水晶的情况,可以沿路线

1 -> 5 -> 1

之后在城市 11 放置水晶,再沿路线

1 -> 9 -> 1 -> 2 -> 3 -> 7 -> 3 -> 4 -> 8 -> 4 -> 6 -> 10

并使用城市 11 的水晶,路线长度为 8686

对于使用不超过 22 个水晶的情况,可以使用两个水晶 x,yx,y

  • 在城市 11 放置水晶 xx
  • 沿路线 151912373461\to5\to1\to9\to1\to2\to3\to7\to3\to4\to6 行走;
  • 在城市 66 放置水晶 yy
  • 走到城市 1010,使用水晶 yy 返回城市 66
  • 再沿路线 6486\to4\to8 行走;
  • 最后使用水晶 xx 结束行程。