#P41. 修剪树枝

修剪树枝

题目描述

给定 nn 个点,编号为 11 到 nn,这些结点通过 n−1n-1 条边构成一棵树,11 号点为根。

小爱有一把剪刀,可以剪开树上的任何边。当一条边被剪开后,与根分离的部分就会掉落,根所在的部分将继续保留。剪开不同的边需要花费不同的能量。

给定一个目标 tt,请问最少应该剪开哪些边,才能让这棵树恰好留下 tt 个点,且花费的能量之和最小?

输入格式

  • 第一行:两个整数 nn 和 tt。
  • 第二行到第 nn 行:第 ii 行有两个整数 pip_i 和 cic_i,
    • pip_i 表示 ii 号点的父亲编号,
    • cic_i 表示剪开 ii 到 pip_i 的这条边所需要花费的能量。

输出格式

  • 单个整数:表示恰好保留 tt 个点所需最少的能量之和。
5 3
1 100
1 10
2 3 
3 5
8

样例解释 1

将4和5切掉,所用费用为3+5

数据范围

  • 对于 30%30\% 的数据,1≤n≤501\leq n\leq 50
  • 对于 60%60\% 的数据,1≤n≤5001\leq n\leq 500
  • 对于 100%100\% 的数据,1≤n≤50001\leq n\leq 5000,1≤t<n1\leq t<n, 1≤pi<i1\leq p_i<i,1≤ci≤1051\leq c_i\leq 10^5。