「2018 集训队互测 Day 5」小 H 爱染色
题意简述:
题解:
题目要我们求的是 \(\sum_{i=0}^{n-m}F(i)\times( (C_{n-i}^m)^2- (C_{n-i-1}^m)^2)\) ,减去的部分和前面很像。
令 \(Ans(n)=\sum_{x=0}^{n-m}F(x)\times(C_{n-x}^m)^2\) ,答案即为\(Ans(n)-Ans(n-1)\)。
不难发现, \((C_{n-x}^m)^2=(\frac{(n-x)^{\underline{m}}}{m!})^2\) 是关于\(x\)的\(m*2\) 次多项式,因此 \(F(x)\times(C_{n-x}^m)^2\) 为 \(m*3\) 次多项式,\(Ans(x)\)为\(m*3+1\) 次多项式。
现在我们需要算出\(Ans(x)\)在\(0-(3*m+1)\)的值,就可以用插值得到\(Ans(n)\)。题目给了F在\(0-m\)的点值,可以用NTT优化插值求出F在\(0-(3*m+1)\)的点值。组合数也可以\(O(m)\)计算,注意逆元要\(O(m)\)预处理。