NOIP 模拟赛:2024-10-9

T3 没发现 \(u,v\) 的答案是可以独立计算然后相乘的 …… 然后写了个究极恶心的四维 DP,调到结束发现假了 ……

当你发现自己的思路已经恶心到一个地步,请回头观察性质,谢谢。

T3:

思路为 \(u,v\) 两点的方案数分别计算相乘。

对于 \(u\) 的答案,枚举有 \(i\) 个点选在了 \(u\),然后就是求在 \(u\) 的非 \(v\) 子树内,选 \(k-i\) 个点,任意两个点不在同一个子树内的方案数。

如果前后缀背包,暂时只想到 \(O(nL^2)\) 或者 \(O(qL^2)\)

生成函数的解法 \(O(nL+qL)\)

先考虑不禁止子树的情况,令 \(u\) 每个子树的大小为 \(sz_1\sim sz_m\)\(g(u)=\prod_{i=1}^m(1+sz_i\cdot x)\),则不禁止子树选 \(k\) 个的方案就是 \([x^k]g(u)\)

禁止子树,就是 \([x^k]\dfrac{g(u)}{1+sz_v\cdot x}\)不要从除法方向考虑,直接类似待定系数法,从低位到高位一路凑,\(O(L)\) 就能解出这个分式每一项的系数。

posted @ 2024-10-09 17:40  FLY_lai  阅读(17)  评论(0编辑  收藏  举报