bzoj 3027: [Ceoi2004]Sweet (生成函数)

Posted $mathit{AlphaINF}$

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bzoj 3027: [Ceoi2004]Sweet (生成函数)相关的知识,希望对你有一定的参考价值。

题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=3027

题目大意:有$n$种数,每种有$C_i$个,问你在这些数中取出$[l,r]$个,问你有多少种不同的取法,答案对2004取模。

数据范围:$n≤10$,$C_i≤10^6$,$1≤l<r≤10^7$。

 

我们不妨设$f(n)$表示不超过$n$的数的取法之和。

则答案显然为$f(r)-f(l-1)$,下面来推导f(x)。

显然,$f(m)$等于多项式$\Pi_{i=1}^{n} \sum_{j=1}^{C_i}x^i$[0,m]的系数和。

考虑到$C_i$很大,如果直接多项式乘法,会$T$,必须化简。

原式

$=\Pi_{i=1}^n \frac{1-x^{C_i} } {1-x}$。

$=\frac{\Pi_{i=1}^{n} (1-x^{C_i})}{(1-x)^n}$。

$=\Pi_{i=1}^{n} (1-x^{C_i}) \sum_{j=-1}^{\infty} \binom{n+j}{n-1}$

考虑式子的前半部分,不难发现,该部分最多只有$2^n$个位置是非零的,显然我们只需要处理这部分,并不需要对整个多项式做乘法。实现该步骤一个dfs即可。

对于后半部分,假设求f(m)过程中前面通过dfs连乘出的单项式次数为k,那么需要累加的答案显然多项式$\sum_{j=-1}{

(未完待续)

 

 

以上是关于bzoj 3027: [Ceoi2004]Sweet (生成函数)的主要内容,如果未能解决你的问题,请参考以下文章

bzoj 3027: [Ceoi2004]Sweet生成函数+组合数学

[BZOJ2684][CEOI2004]锯木厂选址

CEOI 2004 Trial session Problem. Journey DFS

[CEOI 2004]Sweet

[CEOI2004]锯木厂选址

动态规划(斜率优化):[CEOI2004]锯木厂选址