[USACO19DEC]Tree Depth P

[USACO19DEC]Tree Depth P

题目传送门

u是v的祖先的充要条件:u是([u,v])中最小的,从小往大加元素,第i个加入的元素贡献为([0,i-1])

然后我们枚举i,和(j-i=len)

然后就是求这个多项式的第(k/k-(|len|-1))项:

[prod_{t=0}^z {sum _{i=0}^t x^i} imes prod _{t=z+1}^nsum _{i=0}^t x^i ]

我们可以分别对前缀和后缀搞一个背包,前缀和优化一下就可以(O(NK))做到。

(pre_{i,j})表示前i个,总和为j的方案数。

(suf_{i,j})表示后i个,总和j的方案数。

然后两个部分卷积的时候可以发现,我们只关心两项:

(A[i])表示(pre_{i-1}*suf_{n-i})的第k项。

(B[i])表示(pre_{i-1}*suf_{n-i})的第k-(i-1)项。

(O(NK))计算。

代码,待补:

原文地址:https://www.cnblogs.com/gary-2005/p/14212960.html