題目就是要滿足這樣乙個條件\(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...