#P7925. 「EVOI-RD2」童年
「EVOI-RD2」童年
题目背景
池塘边的榕树上 知了在声声地叫着夏天
操场边的秋千上 只有蝴蝶儿停在上面
黑板上老师的粉笔还在拼命叽叽喳喳写个不停
等待着下课 等待着放学
等待游戏的童年
题目描述
Charlie 童年时代很喜欢爬树。
有一天,Charlie 准备向一棵高大的苹果树发起挑战。这棵苹果树有 个结点,其中结点 为树根。
每个结点会有若干个苹果或一个鸟巢。若这个结点上是若干个苹果,则 Charlie 会摘下所有的苹果装入自己的口袋中;若这个结点是鸟巢且 Charlie 是第一次访问它,则 Charlie 会给这个鸟巢中的每只鸟儿一个苹果不要问鸟儿为什么喜欢苹果。
特别地,如果 Charlie 当前口袋中的苹果不足以给该结点的每只鸟儿一个,则他就不会走向这个结点。注意 Charlie 重复经过一个结点时,不会重复采摘苹果,也不会重复给出苹果。
一开始,Charlie 口袋中有 个苹果。Charlie 将从树根开始爬树,每次经过一条边到达一个结点,并执行对应的操作(摘苹果或给苹果,根结点的操作也要执行)。Charlie 希望最终拥有的苹果数最多。由于 Charlie 还在忙着爬其他的树,他想请你写个程序帮帮他。
输入格式
第一行两个整数 ,含义如上所示。
接下来一行 个整数,第 个整数代表第 号结点的父亲 。
再接下来一行 个整数,第 个数为 。若 ,则代表这个结点有 个苹果;若 ,则代表这个结点有一个 只鸟儿的鸟巢;若 ,则说明这个结点什么也没有。
输出格式
一行一个整数,代表 Charlie 最终拥有的最多苹果数。
提示
样例 1 解释:
可以摘走所有苹果。
样例 2 解释:
只能摘走结点 的苹果,结点 因为鸟儿太多无法访问。
样例 3 解释:
结点 给掉 个苹果,先摘完结点 的苹果,此时口袋中有 个苹果。再闯过结点 ,然后拿走结点 的苹果,结点 由于鸟儿太多没必要走。
一种最优的具体路径:。
数据规模与约定
本题采用捆绑测试。
- Subtask 1 (10 pts):。
- Subtask 2 (20 pts): 。
- Subtask 3 (10 pts):。
- Subtask 4 (30 pts):。
- Subtask 5 (30 pts):无特殊限制。
对于 的数据,。
“记得门前,有两株树,一株是苹果树,还有一株……也是苹果树。”