二項式定理
$\quad \quad \quad (x+y)^n =\sum_{k=0}^{n} {n \choose k} x^{n-k} y^k $
證明
\(\quad (x+y)^n=(x+y)*(x+y)*(x+y)*...\)
我們考慮多項式乘法\((a+b)*(a+b)=a*a+a*b+b*a+b*b\)
於是我們列舉每個因子相乘,可以發現\((x+y)^n\)每個括號裡的 \(x\) 和 \(y\) 最多隻能選一個,乘出來的每個單項式次數和必然為 \(n\) 。
知道這些,那我們再考慮\(x^{n-k}y^k\)會被選出來多少次,這其實也很好知道,無非就是 \(n\) 個 \(y\)
中選出了多少個唄,我們直接列舉即可,於是就得到了這個式子。
例題
推柿子題
設 \(cnt[i]\) 陣列為字元中問號的字首和。
那很簡單列出原始式子
\begin{aligned}
ans&=\sum_{0 \leq L<R \leq n} (R-L)^{k} * \frac{1}{2^{cntR-cntL}}\\
&=\sum_{0 \leq L<R \leq n}\sum_{i=0}^{k}
{k \choose i} R^{k-i} (-L)^i *2^{-cntR} * 2^{cntL}\\
&=\sum_{i=0}^{k} {k \choose i} \sum_{R=1}^{n} R^{k-i} * 2^{-cntR} \sum_{L=0}^{R-1} (-L)^{i} * 2^{cntL}
\end{aligned}