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)。