#814. 路径覆盖
路径覆盖
题目描述
给定一棵有根树 ,节点编号为 ,根节点为 。初始时树中所有节点都是白色。你可以把若干节点染成黑色,使得对于每一条从某个叶子到根的路径上至少存在一个黑色节点。
把节点 染成黑色需要代价 。在满足覆盖所有叶子到根路径的前提下,求染黑节点使总代价最小的最小代价。
叶子定义为树中没有子节点的节点。
输入格式
- 第一行包含一个整数 ,表示节点数。
- 第二行包含 个整数 ,其中 表示节点 的父节点编号(保证 )。
- 第三行包含 个整数 ,其中 表示将节点 染为黑色所需的代价。
输出格式
输出一行,一个整数,表示使得每条叶子到根路径上至少有一个黑色节点的最小总代价。
样例输入 1
4
1 2 3
5 6 2 3
样例输出 1
2
样例输入 2
7
1 1 2 2 3 3
64 16 15 4 3 2 1
样例输出 2
10
说明
数据范围
- 对于 的测试点,保证 。
- 对于另外 的测试点,保证 。
- 对于所有测试点,保证 ,且 。