21.4.2 t3
tag:組合計數,生成函式
\(p\) 為一個長度為 \(n\) 的序列,\(p_i\) 在 \([1,K]\) 中隨機,設 \(a_i\) 為 \(i\) 出現的次數,求 \(E(a_1^F\cdot a_2^F\cdots a_L^F)\)。
\(n,K\leq10^9,\ F\leq10^3,\ L\cdot F\leq 5\cdot10^4,\ mod=2003\)
先考慮 \(F=1\) 時。設 \(x_{i,j}=[p_i=j]\),則:
\[a_i=\sum_{j=1}^nx_{i,j} \]\[E=E(\Pi_{i=1}^L(x_{i,1}+x_{i,2}+\cdots+x_{i,n})) \]考慮它的意義,對於每個值 \(i\)
拓展到一般情況,設\(f(i)=(x_{i,1,1}+x_{i,1,2}+\cdots+x_{i,1,n})(x_{i,2,1}+x_{i,2,2}+\cdots+x_{i,2,n})\cdots(x_{i,F,1}+x_{i,F,2}+\cdots+x_{i,F,n})\)
\[E=\Pi_{i=1}^L f(i) \]那這個式子的意義是什麼呢?原來是給每個值選 \(1\) 個位置,而現在就是給每個值選 \(F\)
先考慮只選擇一個值,設 \(f_{i,j}\) 為選了 \(i\) 個位置,其中有 \(j\) 個不同的位置。則有:
\[f_{i,j}=f_{i-1,j-1}+f_{i-1,j}\cdot j \]即當前可以新選一個位置,或者選擇選過的 \(j\) 種位置中的一個。那麼對於一個權值來說,選出 \(x\) 個不同的位置的方案為 \(f_{F,x}\)。
擴充套件到選擇 \(L\) 個值。容易發現 \(f_{i,j}\)
設 \(f(x)=\sum f_{F,x}x^i\),那麼答案的生成函式就是 \(f^n(x)\)。然後還要乘上分配位置的方案數 \(\binom ntt!\)。所以答案為:
\[ans=\sum_{t=1}^{L*F}\binom ntt!(\frac 1K)^t[x^t]f^n(x) \]注意到其中有一個係數為 \(t!\),而 \(t\geq2003\) 時,\(t!\equiv 0\ (mod\ 2003)\)。所以實際上只需要保留 \(f^n(x)\) 的前 \(2003\) 項,可以不用 FFT
。
複雜度 \(O(F^2+mod^2logn)\)