BZOJ 3771 Triple FFT+容斥原理

解析:

这东西其实就是指数型母函数?

所以刚开始读入的值我们都把它前面的系数置为1。

然后其实就是个多项式乘法了。

最大范围显然是读入的值中的最大值乘三,对于本题的话是12W?

用FFT优化的话,达到了O(nlogn),显然可过。

但是这里有一个问题,就是如何处理重复的部分。

重复的部分我们考虑用容斥原理来解决。

为了方便描述我们不妨设三个多项式。

第一个是仅取一个而构成的多项式。->x

第二个是仅取相同的两个而构成的多项式。->y

第三个是仅取相同的三个而构成的多项式。->z

对于本题有三种情况。

第一种是取一个,显然直接将x加到答案就好。

第二种是取两个,则需要一小步容斥,即(x*x-y)/2

第三种是取三个,则需要进一步容斥,即(x*x*x-3*x*y+2*z)/6

posted @ 2018-03-08 19:52  尹吴潇  阅读(162)  评论(0编辑  收藏  举报