GrassGrass PlantingPlanting 题解

题目

Grass Planting 题解
Grass Planting 题解

解题方法

方法11:树形dpdp

dpidp_i表示以ii为根的子树需要使用的最少的草的种类数,fif_i表示ii节点的儿子个数,bib_i表示与ii结点相连的结点数量。
除了根节点以外的其他结点都与bib_i个结点相连,而有一个结点恰好是它的父亲结点。但是由于根结点没有父亲结点,因此
fi={bi1i>1bii=1f_i=\begin{cases} b_i-1&i>1\\ b_i&i=1 \end{cases}
注:这里我们假定11是整棵树的根。
那么可以得到
dpi=maxjsoni(dpj,fi+1,fj+2)dp_i=\max_{j\in son_i}{(dp_j,f_i+1,f_j+2)}
注:sonison_i表示ii的儿子。
上面式子的dpjdp_j表示以jj为根的子树需要使用的最少的草的种类数,fi+1f_i+1表示ii的儿子的数量再加上ii这个结点,fj+2f_j+2表示jj的儿子的数量再加上iijj两个结点。
那么答案就是dp1dp_1
时间复杂度为O(n)O(n)

方法22:数学

bib_i表示与ii结点相连的结点数量。
我们可以发现,答案就是maxi=1nbi+1\max_{i=1}^{n}{b_i}+1
时间复杂度为O(n)O(n)

相关文章: