無心識的石子堆 增強版

題意簡述:

https://loj.ac/problem/6609spa

題解:

一看m那麼大,模數又恰好能夠NTT,確定就是多項式了
顯然每行恰好選\(2\)個,每列選\(0-2\)個。
枚舉\(i,j\),表示有\(i\)列選了\(2\)個,\(j\)列選了\(1\)個,明顯\(i*2+j=n*2\)
這樣計數彷佛有些噁心。
不妨轉換問題,求有\(2*n\)個位置,每一個位置能夠填1至i或(-j)至(-1),最後要求每一個正數出現2次,負數出現1次的方案數。
方案數(彷佛)爲\(\frac{(2*n)!}{2^i}\)。可是注意到位置\(2*p-1\)\(2*p\)實際上表示的是一行的石子,所以這兩個位置的數不能同樣,而且不該該有前後順序。
對於後一個問題,每一種方案每一對位置會算\(2\)次,最後將答案\(\div 2^n\)便可。
對於前一個問題,容斥。強制選\(k\)對位置相同,貢獻爲:\(\frac{(-1)^{k}*C_n^k*C_i^k*k!*[2*(n-k)]!}{2^{i-k}}\)






get

所以答案爲:
\(\frac{1}{2^n}\sum_{0\leq i\leq n,j=2*(n-i)}C_m^i*C_{m-i}^j*\sum_{0\leq k\leq i}\frac{(-1)^{k}*C_n^k*C_i^k*k!*[2*(n-k)]!}{2^{i-k}}\)
這式子一副能夠NTT的亞子,而後就作完了。

io

代碼:

https://loj.ac/submission/684727class

相關文章
相關標籤/搜索