P1160

[Usaco2006 Mar] Milk Team Select 产奶比赛

[Usaco2006 Mar] Milk Team Select 产奶比赛

约翰的 NN 头奶牛准备组队参加世界级产奶比赛 Multistate Milking Match-up(简称 MMM)。只要一支队伍能够产出至少 XX 加仑牛奶,就能赢得比赛。

每头奶牛都能为队伍贡献一定量的牛奶,贡献量可能为负数,因为有些奶牛会打翻装有其他奶牛所产牛奶的容器。

MMM 倡导家庭成员之间的合作。为了支持这一理念,奶牛们希望在保证队伍总产奶量不少于 XX 加仑的前提下,使队伍中同时入选的母女关系数量尽可能多。所有奶牛均为雌性,因此每一对直接的亲子关系都是母女关系。

给定奶牛之间的家族关系以及每头奶牛的牛奶贡献量,请求出一支获胜队伍中最多能包含多少对母女关系。

如果一支队伍中同时包含外祖母、母亲和女儿,则其中有 22 对母女关系,分别是外祖母与母亲、母亲与女儿。

输入格式

第一行包含两个以空格分隔的整数 NN 和 XX,分别表示奶牛数量和获胜所需的最低产奶量。

接下来 NN 行,第 ii 行包含两个以空格分隔的整数 aia_i 和 mim_i,描述编号为 ii 的奶牛:

  • aia_i 表示该奶牛能贡献的牛奶量;
  • mim_i 表示该奶牛母亲的编号。如果其母亲未知,则 mi=0m_i=0。

家族关系中不存在环,即任何奶牛都不会是自己的母亲、外祖母或更高代祖先。

输出格式

输出一个整数,表示获胜队伍中最多能包含的母女关系数量。

如果不存在任何能够获胜的队伍,输出 −1-1。

样例输入

5 8
-1 0
3 1
5 1
-3 3
2 0

样例输出

2

样例解释

共有 55 头奶牛。编号为 11 的奶牛能贡献 −1-1 加仑牛奶,并且是编号为 22、33 的奶牛的母亲。编号为 22、33 的奶牛分别能贡献 33 加仑和 55 加仑牛奶。编号为 44 的奶牛是编号为 33 的奶牛的女儿,能贡献 −3-3 加仑牛奶。编号为 55 的奶牛与其他奶牛没有亲子关系,能贡献 22 加仑牛奶。

最优队伍由编号为 11、22、33、55 的奶牛组成,总产奶量为

(−1)+3+5+2=9≥8。(-1)+3+5+2=9\ge 8。

队伍中共有 22 对母女关系,分别是编号为 11 与 22 的奶牛,以及编号为 11 与 33 的奶牛。

如果只选择编号为 22、33、55 的奶牛,总产奶量虽然为 1010 加仑,但队伍中没有母女关系。

数据范围

  • 1≤N≤5001\le N\le 500;
  • 1≤X≤1061\le X\le 10^6;
  • −104≤ai≤104-10^4\le a_i\le 10^4;
  • 当奶牛的母亲已知时,1≤mi≤N1\le m_i\le N;母亲未知时,mi=0m_i=0;
  • 给出的家族关系不存在环。

来源与许可

本题为 USACO 2006 March 试题「Milk Team Select 产奶比赛」,题面与测试数据整理自 BZOJ。

样例 1

输入

5 8
-1 0
3 1
5 1
-3 3
2 0

输出

2