有一棵树,标号为0到n-1,0为根节点,每个点有点权
现在你可以在一些点上放苹果,也可以拿掉某些点上的苹果
一个点可以放苹果当且仅当这个点的所有儿子都放上了苹果
如果根节点放上苹果任务完成
求在整个过程中放着苹果的节点的点权之和的最大值的最小值( 也就是说你要选择一个合理的顺序放置苹果来使得答案最优)
输入描述:
第一行输入一个整数n (2 ≤ n ≤ 1000)
第二行输入n-1个整数p[0]->p[n-2], p[i]表示(i+1)与p[i]之间有一条边,0 ≤ p[i] ≤ i
第三行输入n个整数表示每个点的点权,1 ≤ w[i] ≤ 105 , w非减
输出描述:
输出一个整数
示例1
说明
{0,1,2,3} //分别表示1的父亲 2的父亲 3的父亲 4的父亲
{1,2,2,4,4}//每个点的点权值
Returns: 8
五个节点构成了一条链
在节点4上放一个石头 (权值和 = 4).
在节点3上放一个石头 (权值和 = 8).
移除节点4上的石头 (权值和 = 4).
在节点2上放一个石头 (权值和 = 6).
在节点1上放一个石头 (权值和 = 8).
移除节点2上的石头 (权值和 = 6)
在节点0(根节点)上放一个石头 (权值和 = 7)
整个过程中最大的权值和为8,不存在比最大值比8小的方案了