码迷,mamicode.com
首页 > 其他好文 > 详细

Comet OJ - Contest #11 ffort

时间:2020-05-23 00:18:33      阅读:50      评论:0      收藏:0      [点我收藏+]

标签: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}\)

\[\begin{aligned} Ans&=\sum_{a=1}^{\infty}([x^a]G)\cdot\binom{a-1}{m-1}\&=\sum_{a=0}^{\infty}\!\left([x^{a}]\dfrac{G}{x}\right)\!\cdot\binom{a}{m-1}\&=\frac{1}{(m-1)!}\sum_{i=0}^{\infty}([x^i]F)i^{\underline{m-1}} \end{aligned}\]

多项式求导后:\(\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)\)阶导

  • \(\displaystyle t=\prod_{i=1}^{n}t_i\)\(k\)阶导,反复利用\((fg)‘=f‘g+fg‘\)
  • \(\displaystyle t^{(k)}=\sum_{a_1+a_2+\cdots+a_n=k}\binom{k}{a_{1\ldots n}}\prod_{i=1}^{n}t_i^{(a_i)}\)
  • \(\displaystyle t^{(k)}=k![z^k]\prod_{i=1}^{n}\sum_{j=0}^{\infty}\frac{t_i^{(j)}}{j!}z^j\)

\(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}\)

\[\begin{aligned}Ans&=\frac{1}{\hat m}F^{(m)}(1)\\&=\frac{1}{\hat m}\left(\hat m!\left[z^{\hat m}\right]\prod_{i=0}^{n}\left(\sum_{j=0}^{\infty}\frac{f_i^{(j)}}{j!}z^{j}\right)^{a_i}\right)(1)\\&=[z^m]\prod_{i=0}^{n}\left(\sum_{j=0}^{\infty}\frac{f_i^{(j)}(1)}{j!}z^j\right)^{a_i}\end{aligned} \]

Comet OJ - Contest #11 ffort

标签:under   利用   特殊   spl   splay   一个   mat   选择   ldo   

原文地址:https://www.cnblogs.com/Grice/p/12940354.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!