#P1265. 先修课程

先修课程

题目描述

有 NN 门课,编号为 11 到 NN。

每门课有一个先修课程,第 ii 门课程的先修课程为 PiP_i。意思是如果要修 ii,必须先修 PiP_i。如果 Pi=0P_i = 0,说明这门课没有先修课程。

如果选择修第 ii 门课程,可以获得 AiA_i 分。给定一个整数 MM,表示最多只能选修 MM 门课,请问应该修哪些课程,才能让得分达到最大,输出这个最大值。

输入格式

  • 第一行:两个整数表示 NN 与 MM
  • 接下来有 NN 行:每行两个整数表示 PiP_i 与 AiA_i

输出格式

5 3
0 50
1 20
1 30
0 50
4 100
200

数据范围

  • 30%30\% 的数据,1≤M≤N≤201\leq M\leq N\leq 20
  • 60%60\% 的数据,1≤M≤N≤3001\leq M\leq N\leq 300
  • 100%100\% 的数据,1≤M≤N≤50001\leq M\leq N\leq 5000
  • 0≤Ai≤10,0000\leq A_i\leq 10,000