かんプリンの学習記録

勉強したことについてメモしています. 主に競技プログラミングの問題の解説やってます.

yukicoder No.1100 Boxes

問題はこちら

問題概要

{N}個の互いに区別できるボールを{K}個の互いに区別できる箱に入れる入れ方であって,ボールが1個も入っていない箱の個数が奇数であるようなものの数を求めよ.

{1\leq N\leq 10^7\\
1\leq K\leq 10^5}

解説

{\displaystyle\sum_{1\leq m\leq K, m:odd}[x^Ny^m]N!(e^x-1+y)^K}
が答えとなる({K}回の選択のうち,{y}を選ぶと空箱,{e^x-1}でボールを何個か選ぶという意味).

{\displaystyle[x^Ny^m]N!(e^x-1+y)^K\\
\displaystyle=[x^Ny^m]N!\sum_{i=0}^{K}\binom{K}{i}e^{(K-i)x}\sum_{j=0}^{i}\binom{i}{j}y^{j}(-1)^{i-j}\\
\displaystyle=N!\sum_{i=m}^{K}\binom{K}{i}\frac{(K-i)^N}{N!}\binom{i}{m}(-1)^{i-m}\\
\displaystyle=\frac{K!}{m!}\sum_{i=m}^{K}\frac{(K-i)^N}{(K-i)!}\frac{(-1)^{i-m}}{(i-m)!}\\
\displaystyle=\frac{K!}{m!}\sum_{s+t=K-m}\frac{s^N}{s!}\frac{(-1)^t}{t!}}
NTTにより{m=1,\dots,K}についてこの値が{O(K(\log{K} +\log{N}))}で求められる.

提出プログラム

https://yukicoder.me/submissions/710608

感想