#A. 树
树
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
定义:树是一个有 个点 条边的无向连通图,任意两个点间恰有一条简单路径。最末端仅有一条边相连的节点称为叶子。 dash家有一个后院,院子的中央种有一棵树。dash喜欢在雨后初晴时到院子里观察。
这棵参天大树可以抽象成一棵 个节点的树,节点从 到 编号,树的根在 号节点。第 个节点有一个正整数 表示该处的美感值。
dash尤其喜欢观察蚂蚁。这天,dash捉来了 只蚂蚁。他想挑选树上的 个节点,每个节点放上一只蚂蚁。dash知道蚂蚁在树上时,会一直朝着根的方向移动,中间会经过一个个节点,最后到达根节点,之后,蚂蚁便到达了地面。
热爱自然的dash想知道这 只蚂蚁经过的节点的美感值和的最大值是多少,于是请你来帮帮忙。注意经过的节点包括初始节点,且多次访问的节点仅算入一次。
输入格式
共三行,第一行有两个正整数 ,表示树的大小和选取的节点数; 第二行有 个非负整数,第 个数表示 ; 第三行有 个正整数,第 个数 表示节点 的父亲节点。保证 。
输出格式
仅一行一个数,表示美感值和的最大值。
样例
5 2
1 2 3 1 3
1 1 2 2
9
解释#1
这棵树的形态如下图:
选择 两个节点,则经过的节点集合为 。
红色数字为每个节点的美感值,故美感值和为 。可以证明这个值是最大值。
10 3
3 4 2 2 3 1 3 3 5 4
1 2 1 1 3 3 2 4 6
24
解释#2
选取 三个节点,得到的美感值和为 。
方案可能不唯一。
数据范围
对于所有数据:。
如有需要,请使用scanf
读入以及减少使用STL
,以降低程序本身带来的常数。