序列操作bzoj2962(未完成)

题解:

注意到k<=20;记录20个数f1...f20表示从选1-20个数的乘积分别为多少,

那么是一个(…+x)(…+x)……(…+x) 
拆括号,枚举含有j个x,那么就是xjf[ij]Cjleni+j 
那个组合数的含义?因为有j个x,这j个x所在括号另一项的可能性是什么呢?i-j个已经确定,还有len-i+j个未确定,要选出j个。 

另外对于区间取反操作只要对为奇数的取反就可以了,另外要把lazy取反

合并两区间时f[k]=sigma(f[i]*f[k-i])就可以了

代码:

posted @ 2018-02-01 23:11  尹吴潇  阅读(76)  评论(0编辑  收藏  举报