CTS2019 珍珠[生成函数]
先考虑 \(m\) 会带来什么限制。
\[\sum_{i=1}^D [{cnt_i \over 2}] \geq m\\\sum_{i=1}^D {cnt_i - cnt_i \& 1 \over 2} \geq m\\\sum_{i=1}^D cnt_i - \sum_{i=1}^D {cnt_i \& 1} \geq 2m\\\sum_{i=1}^D cnt_i \& 1 \leq n - 2m
\]
也就是出现次数为奇数的数不超过 \(n-2m\) 个。
这样就意味着出现次数为偶数的数不小于 \(k\) 个。
那就设 \(f_i\) 表示大力硬点 \(i\) 个数出现次数为偶数,其余随便选的方案数。
\[f_i = {D \choose i } n^i e ^{(D-i)x}
\]
一通大力操作,可以得到
\[f_i = {D \choose i}{i! \over 2^i} \sum_{j=0}^i {(D-2j)^n \over j!}{1 \over (i-j)!}
\]
右边已经是一个卷积的式子了。
然后考虑 \(g_i\) 表示恰好 \(k\) 个偶数的方案数。
\[f_i = \sum_{j=i} {j \choose i } g_j
\]
由二项式反演
\[g_i = \sum_{j=i} (-1)^{j-i}{j \choose i} f_j
\]
然后就没了,好耶。
代码不想写。
                    
                
                
            
        
浙公网安备 33010602011771号