题目描述
给定一棵 nnn 个结点的树,结点编号为 1−n1-n1−n,iii号结点的权重记为 wiwiwi(每个点的权值各不相同)。我们定义一个“疯子树”为: 1. 是一个联通子图。 2. 我们将子图内的点按照权重从小到大排序后序列为 b1,b2,…,bmb1,b2,…,bmb1,b2,…,bm,对于任意的i(i<m)i(i<m)i(i<m),bibibi到bi+1bi+1bi+1。最短路径(不含bibibi和bi+1bi+1bi+1)上的结点的权值都小于等于wbiw_{bi}wbi。输出包含结点最多的“疯子树”的结点数。
题解
首先,树中两点的路径唯一,不需要考虑最短路。
其次,我们考虑一下疯子书这个树有什么特殊的性质:
- 我们发现,每一棵疯子树中任意两点间的权值都小于这两个点。如果是一条链的话,必然是连续的不断并且一次递减;如果是一棵树的话,这棵树和每一个子树都满足根节点为最小点的树一定是疯子树。
显然,以不同的节点为根会产生不同的答案,由于题目中说的是无根树我们可以采用换根的方法来进行处理。
我们设g[x]g[x]g[x]表示以