「2018 集訓隊互測 Day 5」小 H 愛染色

題意簡述:

https://loj.ac/problem/2504優化

題解:

題目要咱們求的是 \(\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(n)\)預處理。


url

代碼:

https://loj.ac/submission/683877spa

相關文章
相關標籤/搜索