4436: 二叉苹果树--树型动态规划训练T1

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:1 Solved:1

Description

二叉苹果树(apple.pas/c/cpp)

有一棵苹果树,如果树枝有分叉,一定是分 2 叉(就是说没有只有 1 个儿子的结点)。 这棵树共有 N 个结点(叶子点或者树枝分叉点),编号为 1-N,树根编号一定是 1。

我们用一根树枝两端连接的结点的编号来描述一根树枝的位置。下面是一颗有 4 个树枝 的树:

2   5

\ /

3   4

\ /

现在这颗树枝条太多了,需要剪枝。但是一些树枝上长有苹果。 给定需要保留的树枝数量,求出最多能留住多少苹果。

程序名:apple

输入格式:

第 1 行 2 个数,N 和 Q(1<=Q<= N,1<N<=100)。

N 表示树的结点数,Q 表示要保留的树枝数量。接下来 N-1 行描述树枝的信息。

每行 3 个整数,前两个是它连接的结点的编号。第 3 个数是这根树枝上苹果的数量。 每根树枝上的苹果不超过 30000 个。

输出格式: 一个数,最多能留住的苹果的数量。

输入样例:

5 2

1 3 1

1 4 10

2 3 20


3 5 20

输入样例:

21

来源:URAL(广州六中信息学奥赛小组译)