标签:under 利用 特殊 spl splay 一个 mat 选择 ldo
\(m\)种武器,第\(i\)种有\(a_i\)个,贡献为\(\in[1,b_i]\),\(n\)个敌人,每个武器可以选择将贡献分给多个人,每个人都至少被贡献过。
一个方案不同,为某个武器贡献不同,或某个人被贡献的不同。(武器具体贡献给谁其实并不重要)
\(n\times m\le 10^5\),\(a_i\in[1,10^5],b_i\in[1,mod)\)
令总贡献为\(a\),\(a\)分给\(m\)个人:\({a-1\choose m-1}\)
但\(a\)上界太大了
我们这样做,比如:\(len_1,len_2,len_3,len_4\),\(len_1\)可以有\(i\in[0,len_1)\)种个数,\(len_2\)可以有\(i\in[0,len_2)\)种个数...\(len_1\)与\(len_2\)中有一个点可以选或不选,\(len_2\)与\(len_3\),\(len_3\)与\(len_4\)
然后所有的个数选\(n-1\)个,则我们可以用\(x^i\)的系数表示选择\(i\)个的方案数,令\(F_i\)表示这个,然后就是\(F_i^{a_i}\),合并的时候\(\times(1+x)\)
暴力快速幂\(O(nmlognloga_i)\),用exp可以优化到\(O(nmlogn)\),但应该没什么用...
令\(\displaystyle G=\prod_{i=1}^{n}\left[\mathbf{OGF}\left\{0,\underset{b_i}{\underbrace{1,\ldots,1}}\right\}\right]^{a_i}\)
多项式求导后:\(\displaystyle f^{(k)}(x)=\sum_{i=k}^{\infty}f_ii^{\underline{k}}\cdot x^{i-k}\),则有\(\displaystyle\sum_{i=0}^{\infty}f_ii^{\underline{m-1}}=f^{(m-1)}(1)\)
则有\(Ans=\frac{1}{(m-1)!}F^{(m-1)}(1)\)
考虑\(\displaystyle F=\frac{1}{x}\prod_{i=1}^{n}\left[\mathbf{OGF}\left\{0,\underset{b_i}{\underbrace{1,\ldots,1}}\right\}\right]^{a_i}\)的\((m-1)\)阶导
令\(f_i=\mathbf{OGF}\left\{0,\underset{b_i}{\underbrace{1,\ldots,1}}\right\}\),特殊的,\(f_0=\dfrac{1}{x},a_0=1\),则\(\displaystyle F=\prod_{i=0}^{n}f_i^{a_i}\)
标签:under 利用 特殊 spl splay 一个 mat 选择 ldo
原文地址:https://www.cnblogs.com/Grice/p/12940354.html