#P9706. 「TFOI R1」Ride the Wind and Waves

    ID: 10663 远端评测题 1000ms 256MiB 尝试: 0 已通过: 0 显示难度省选/NOI− 上传者: 标签>动态规划 DPO2优化前缀和基环树差分

「TFOI R1」Ride the Wind and Waves

背景

Z 教授是 C 班的老师。

Z 教授最近发现一个神奇的现象,他的学生竟然都有自己暗恋的对象,但是没有一个人勇于表白。

Z 教授作为过来人,当然懂得每一个学生心里最真实纯真的想法,以及自认为的爱意情愫。Z 教授想起了初恋蕉太狼,他不想让自己的学生在青春年华失去色彩,于是 Z 教授冒着被开除的风险,主动帮助学生表达心意。

然后 Z 教授被开除了。

题目描述

有一棵 nn 个节点的内向基环树(保证弱连通),树上每条边都有一个权值。现有一个特定参数 kk。

由于基环树是内向的,所以一个点 xx 可能会有无法直接到达的节点。但是我们可以翻转树上的一些有向边,这样 xx 就可以到达树上每一个节点。如果一个节点 xx 需要至少翻转 kk 条边才能到达 yy,则称 yy 是 xx 的乘风破浪点。在翻转了最少的边使得 xx 可以到达 yy 之后,在 xx 到 yy 的最短路径上,定义 F(x,y)F(x, y) 为未翻转的边的权值之和,R(x,y)R(x, y) 为已翻转的边的权值之和。

如果 yy 是 xx 的乘风破浪点,那么有一个值 G(x,y)G(x, y) 表示 xx 到 yy 的浪涛值,定义 G(x,y)=F(x,y)×R(x,y)G(x, y) = F(x, y) \times R(x,y)。

请你对于每一个节点 ii,输出 ∑G(i,y)\sum G(i, y) 的值,其中 yy 是 ii 的乘风破浪点。

输入格式

第一行输入两个正整数 n,kn, k,表示基环树大小和一个比较的参数。

接下来 nn 行,每行输入 u,v,wu, v, w 三个正整数,表示树上存在一条边 (u,v,w)(u, v, w),表示其起点为 uu,终点为 vv,权值为 ww。

输出格式

输出 nn 行,每行一个正整数,表示每个节点到它的所有乘风破浪点的浪涛值之和。

7 1
1 4 3
2 1 2
3 1 6
4 3 4
5 2 4
6 4 1
7 5 2
3
5
105
160
9
176
11
7 1
1 2 3
2 3 2
3 1 2
4 1 3
5 4 2
6 2 1
7 6 4
18
32
46
36
48
40
72

提示

样例解释 #1

拿 33 节点的答案为例子,基环树的形状如图:

可知 2,5,6,72,5,6,7 为 33 的乘风破浪点,统计答案:

  • G(3,2)=6×2=12G(3, 2) = 6 \times 2 = 12。

  • G(3,5)=6×6=36G(3, 5) = 6 \times 6 = 36。

  • G(3,6)=9×1=9G(3, 6) = 9 \times 1 = 9。

  • G(3,7)=6×8=48G(3, 7) = 6 \times 8 = 48。

所以 ∑G(3,j)=12+36+9+48\sum G(3, j) = 12 + 36 + 9 + 48,答案为 105105。

数据范围

本题采用捆绑测试。

  • Subtask 1(5 points):1⩽n⩽101 \leqslant n \leqslant 10,包含特殊性质。
  • Subtask 2(10 points):1⩽n⩽50001 \leqslant n \leqslant 5000,包含特殊性质。
  • Subtask 3(25 points):1⩽n⩽1051 \leqslant n \leqslant 10^5,包含特殊性质。
  • Subtask 4(60 points):1⩽n⩽1061 \leqslant n \leqslant 10^6,无特殊限制。

特殊性质:保证环上节点的个数在 10310^3 以内。

对于所有数据,1⩽n⩽1061 \leqslant n \leqslant 10^6,1⩽k⩽101 \leqslant k \leqslant 10,保证答案不会超过 101810^{18}。