題解 CTS2019珍珠 二項式反演 卷積

2022-02-23 19:51:54 字數 1067 閱讀 7299

題目就是要滿足這樣乙個條件\(c_i\)代表出現次數

\[\sum 2]} \ge 2m

\]顯然\(\sum c_i=n\)所以,而且假如\(c_i\)是\(2\)的約數就有正常的貢獻,如果不是就有少一點的貢獻,那麼

\[\sum^d_ > n-2m

\]設\(f_i\)為欽定有\(i\)種顏色出現偶數次的方案。問題瞬間就變成了haoi染色...

則有\[f_i=[x^n]n!(\dfrac })^i^

\]選出欽定的\(i\)個顏色,後面是序列的生成方式。

\[2^if_i=[x^n]n!( })^i^

\]展開\(^i\)

\[2^if_i=[x^n]n!\sum_^i^

\]由於是求\([x^n]\)所以

\[2^if_i=n!\sum_^i\dfrac ^n}

\]\[=\sum_^i ^n}

\]所以

\[\dfrac i!}=\sum_^i \dfrac

\]右邊的式子直接ntt得到。

然而我們知道,這樣的欽定是有重複的,具體如何重複參考[【題解】haoi2018]染色(ntt+容斥/二項式反演)。我們直接二項式反演:

設\(g_i\)表示恰好\(i\)種顏色出現次數為偶數的方案,則考慮一下\(g_j\)在\(f_i\)出現的次數

\[f_i=\sum_^d g_i

\]直接二項式反演

\[g_i=\sum_^d (-1)^f_j

\]下標從0沒問題,變一下:

\[g_i=\sum_^d (-1)^\dfrac f_j

\]整理

\[\dfrac =\sum_^d \dfrac\times j!f_j}

\]reverse一下,右邊又直接ntt

最終答案:

\[\sum_^d g_i

\]你覺得肯定做不了,\(n\le 1e9\)啊,但是考慮一些邊界情況:

所以如果用多項式演算法的條件是

\[n\ge2m\\n-2m+1\le d=1e5\\

\]多項式的maxn開\(1<<18\)就行了。

**真的懶得寫就是套套板子調調參。

CTS2019 珍珠 二項式反演

cts2019 珍珠 考慮實際上,統計多少種染色方案,使得出現次數為奇數的顏色數 n 2 m 其實看起來很像生成函式了 n很大?感覺生成函式會比較整齊,考慮生成函式能否把n放到數值的位置,而不是維度 有標號,egf,發現奇偶性有關,其實就是e x e x 這種。確實很整齊 所以可以帶著e x化簡 如...

題解 CTS2019 珍珠

cts2019 珍珠 有 n 個在 1,d 內的整數,求使可以拿出 2m 個整數湊成 m 個相等的整數對的方案數。資料範圍 0 le m le 10 9 1 le n le 10 9 1 le d le 10 5 非常巧妙的題,主要要用到二項式反演 指數級生成函式和ntt。做個廣告,這是我讀過最好的...

二項式反演

先從反演原理出發,假如存在兩個數列 f,g 我們知道 f n sum limits n a times g i 則 g n sum limits n b times f i 恆成立,那麼我們由 f 推出 g 的過程叫做反演。下面我們來 一下上面兩個式子恆成立的條件,將左邊帶入右邊,那麼有 begin...