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

内存限制:128 MB 时间限制:1 S
题面:传统 评测方式:文本比较 上传者:
提交:5 通过:5

题目描述

二叉苹果树(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(广州六中信息学奥赛小组译)

分类标签