洛谷 P4705 玩遊戲

2022-08-20 23:42:14 字數 938 閱讀 7962

題目要求的是:

\[\sum_^n\sum_^m(a_i+b_j)^x(x\in [1,t])

\]利用二項式定理化式子,

\[\begin

&\sum_^n\sum_^m(a_i+b_j)^x\\

=&\sum_^n\sum_^m\sum_^x\binoma_i^kb_j^\\

=&x!\sum_^n\sum_^m\sum_^x\frac\frac}\\

=&x!\sum_^x\frac^na_i^k}\frac^mb_j^}

\end

\]發現上面是乙個卷積的形式。現在需要我們能快速求出\(\sum\limits_^na_i^k\)。

構造\(\sum\limits_^na_i^k\)的生成函式:

\[\begin

a(i)&=\sum_ja_i^jx^j\\

f(x)&=\sum_^na(i)

\end

\]\(f\)函式的每一項即為\(\sum\limits_^na_i^k\)。

化一下式子

\[\begin

f(x)&=\sum_^n\sum_a_i^jx^j\\

&=\sum_^n\frac\\

&=\sum_^n1+\frac\\

&=n-x\sum_^n\frac\\

&=n-x\sum_^n\left[\ln(1-a_ix)\right]'\\

&=n-x\left[\sum_^n\ln(1-a_ix)\right]'\\

&=n-x\left\^n(1-a_ix)\right]\right\}'\\

\end

\]\(\prod_^n(1-a_ix)\)可以用分治fft\(o(nlog^2n)\)算出。

那麼再求ln,求導,乘上x,取負,加上常數項就能得到\(f\)了。

最後把a,b的生成函式分別除以一下階乘,再卷積一下即可。

洛谷P4705 玩遊戲

題目描述 題解 首先對於 k in 1,t 我們列出其答案的式子 ans k frac n sum m a i b j k 觀察分子的式子,把它用二項式定理展開 sum k sum n sum m k x a i xb j k sum k sum n frac sum m frac 這兩個括號裡的式...

洛谷4705 玩遊戲(多項式)

s s 怎麼整天給我推薦神奇的多項式題,我又不會 洛谷 4705 我感覺這題不是很好理解,我狠狠惡補了一波多項式知識。當然主要原因還是我除了裸的多項式乘法以外壓根沒做過什麼多項式題,乘法以上的操作 求逆之類 都只寫過板子 前置知識 這題要用 ln 說實話我現在看我將近一年四個月以前寫的這些東西,感覺...

洛谷5月月賽 玩遊戲(NTT,生成函式)

luogu 看一下要求的是什麼東西 a x by i ax by i的期望。期望顯然是所有答案和的平均數。所以求出所有的答案就在乘乙個逆元就好了。現在考慮怎麼算上面那個東西。對於單個的計算,我們可以用二項式定理直接展開 得到 a b k i 0kc ikai bk i i 0kci k a i bk...