#aBC259F. [ABC259F] Select Edges

[ABC259F] Select Edges

AT_abc259_f [ABC259F] Select Edges

题目描述

给定一棵有 NN 个顶点的树。对于 i=1,2,,N1i=1,2,\ldots,N-1,第 ii 条边连接顶点 uiu_i 和顶点 viv_i,其权值为 wiw_i

你可以从 N1N-1 条边中选择若干条(可以选择 00 条,也可以选择全部 N1N-1 条)。但是,对于每个 i=1,2,,Ni=1,2,\ldots,N,与顶点 ii 相连的被选中的边数不能超过 did_i 条。请你求出所能得到的边权和的最大可能值。

输入格式

输入通过标准输入给出,格式如下:

NN d1d_1 d2d_2 \ldots dNd_N
u1u_1 v1v_1 w1w_1
u2u_2 v2v_2 w2w_2
\vdots
uN1u_{N-1} vN1v_{N-1} wN1w_{N-1}

输出格式

输出一个整数,表示最大可能的边权和。

输入输出样例 #1

输入 #1

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

输出 #1

28

输入输出样例 #2

输入 #2

20
0 2 0 1 2 1 0 0 3 0 1 1 1 1 0 0 3 0 1 2
4 9 583
4 6 -431
5 9 325
17 6 131
17 2 -520
2 16 696
5 7 662
17 15 845
7 8 307
13 7 849
9 19 242
20 6 909
7 11 -775
17 18 557
14 20 95
18 10 646
4 3 -168
1 3 -917
11 12 30

输出 #2

2184

说明/提示

限制条件

  • 2N3×1052 \leq N \leq 3 \times 10^5
  • 1ui,viN1 \leq u_i, v_i \leq N
  • 109wi109-10^9 \leq w_i \leq 10^9
  • did_i 是不超过顶点 ii 的度数的非负整数
  • 给定的图是一棵树
  • 所有输入均为整数

样例解释 1

选择第 1,2,5,61,2,5,6 条边时,所选边的权值之和为 8+9+8+3=288+9+8+3=28,这是可能得到的最大值。

由 ChatGPT 4.1 翻译