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)\) 就能解出这个分式每一项的系数。