最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

信息学奥赛题库- 【例 1】二叉苹果树

C++ 少儿编程 1022浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

【题目描述】

有一棵二叉苹果树,如果数字有分叉,一定是分两叉,即没有只有一个儿子的节点。这棵树共 $N$ 个节点,标号 $1$ 至 $N$,树根编号一定为 $1$。

我们用一根树枝两端连接的节点编号描述一根树枝的位置。一棵有四根树枝的苹果树,因为树枝太多了,需要剪枝。但是一些树枝上长有苹果,给定需要保留的树枝数量,求最多能留住多少苹果。

【输入】

第一行两个数 $N$ 和 $Q$ ,$N$ 表示树的节点数,$Q$ 表示要保留的树枝数量。

接下来 $N-1$ 行描述树枝信息,每行三个整数,前两个是它连接的节点的编号,第三个数是这根树枝上苹果数量。

【输出】

输出仅一行,表示最多能留住的苹果的数量。

【输入样例】

5 2
1 3 1
1 4 10
2 3 20
3 5 20

【输出样例】

21

【提示】

数据范围与提示:

对于 100% 的数据,$1≤Q≤N≤100,Nneq 1$,每根树枝上苹果不超过 $30000$ 个。

您必须 登录 才能发表评论!