bzoj#P2031. [2009国家集训队]剪枝
[2009国家集训队]剪枝
题目描述
给出一颗有根树。树有 个结点,被标记成 到 的整数, 号结点为根节点。第 个结点的权值为 。对于结点 ,有 个孩子,从左到右依次为 。特别地,若 号结点是叶结点,则 。
我们对树进行深度优先搜索(DFS),每个点必须按从左到右的顺序访问每个孩子,形成一个 DFS 序列,记作 。对于两个叶结点 ,在 DFS 序列中 在 和 之间。换个方式讲,对于叶节点,,,记 ,不存在 ,使得 。
每对相邻的叶节点(,),都存在一个影响值。影响值定义为 到 的路径上(不包含、 的节点)的最大点权值。
定义一棵树的价值等于这棵树所有叶结点的权值之和减去每对相邻叶结点的影响值。
当然要是让你算这棵树的价值就太简单了。你的目标是对树进行一些剪枝,使树的价值最大。剪枝的方式为:如果一个结点的孩子都是叶结点,就可以将它的所有的孩子剪去。
输入格式
第一行:; 第二行到第 行:第 行为 。
输出格式
第一行:这棵树修改后的最大价值。
样例输入
10
7 3 8 9 10
4 1 5
10 0
10 0
1 1 4
4 0
4 1 3
3 0
3 1 2
9 2 7 6
样例输出
8
数据规模与约定
对于 的数据,,。
题目来源
版权所有者:李恺威