Grass Planting 题解
题目


解题方法
方法1:树形dp
设dpi表示以i为根的子树需要使用的最少的草的种类数,fi表示i节点的儿子个数,bi表示与i结点相连的结点数量。
除了根节点以外的其他结点都与bi个结点相连,而有一个结点恰好是它的父亲结点。但是由于根结点没有父亲结点,因此
fi={bi−1bii>1i=1
注:这里我们假定1是整棵树的根。
那么可以得到
dpi=maxj∈soni(dpj,fi+1,fj+2)
注:soni表示i的儿子。
上面式子的dpj表示以j为根的子树需要使用的最少的草的种类数,fi+1表示i的儿子的数量再加上i这个结点,fj+2表示j的儿子的数量再加上i和j两个结点。
那么答案就是dp1。
时间复杂度为O(n)。
方法2:数学
设bi表示与i结点相连的结点数量。
我们可以发现,答案就是maxi=1nbi+1。
时间复杂度为O(n)。