[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}\times \prod _{t=z+1}^n\sum _{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)\)计算。

代码,待补:

posted @ 2020-12-30 18:34  WWW~~~  阅读(67)  评论(0编辑  收藏  举报