相信看这篇文的人应该是会一些简单的线性树形dp的吧……
如果有不会的请先看看树形dp基础吧……比如这道题没有上司的舞会
其实之所以想写这篇文是因为前段时间被教练骗去叫去参加一场UESTC组织主办的线下赛,叫什么……2018青少年信息学科普活动春季体验营,然后测试的时候第一题我是用的换根法A的,于是决定皮一皮写一写。
先上题面:
最大疯子树
【题目描述】
给定一棵 n 个结点的树,结点编号为 1~n,i 号结点的权重记为 wi(每个点的权值各不相同)。我们定义一个“疯子树”为:
1. 是一个联通子图。
2. 我们将子图内的点按照权重从小到大排序后序列为 b1,b2,…,bm,对于任意的 i(i<m),bi到 bi+1最短路径(不含 bi和 bi+1)上的结点的权值都小于等于 i wb 。
输出包含结点最多的“疯子树”的结点数。
【输入格式】
数据有多组 case,文件以 EOF 结束,每组第一行输入一个 n 表示树的节点数;
接下来一行包含 n 个整数,第 i 个数表示 i 号结点的权重 wi;接下行 n-1 行,第
i 行包含 2 个整数 ui, vi,表示 ui和 vi有一条边。
【输出格式】
对于每组 case 输出一行,包含一个整数,表示包含结点最多的“疯