1.9生成函数

1.生成函数是研究竞赛中的计数问题的,往往配合fft能较好的计算x+y+z+,,,=N的形式的方案或求值,且把y,z看成多项式x的指数,那么目标就是x^n的系数而已,而多项式的元x不过是占位符

2偶遇bonoulli数,有时间要好好玩玩

3.例题3:计算不含某个字串的方案数,

按说可以字符串dp f(i+1,next(j,ch))+=f(i,j)构造转移矩阵时间复杂度O(LOGN^3)花费在转移矩阵上,用kmp预处理或暴力即可,对应bzoj上某道题

实际上,一道题,dp的方法并不只一个,有时有一打,,,,状态表示就看你的脑冻了,,转移更是多种多样,集合类,求和类,做差类,但状态表示更为重要,

这里换用另一种dp,想一想,如果原来的状态表示到i个匹配状态为q时的方案数,条件好严格,s不能出现,那么补集转化,设F[I]为到第i个恰好第一次匹配的方案数,这就比较好转移了,考虑匹配情况,F[i]=m^(n-k)-求和(F[J]*m(i-k-j))-bonder集合(F[N-D]),bonder集合就是kmp的fail函数,从最大的往上找即可,这时候复杂度:O(N^2),已经很好了,但是数据是10^5级别,所以得优化,咋优化?斜率?不行,前缀,扯淡,一大坨式子,咋办,,,生成函数这时派上用场


你可能感兴趣的:(1.9生成函数)