一道不知道哪里来的FFT题


(k<=1e5,求的方案是有顺序的,即{2,3}和{3,2}不同)
sol:
首先考虑没有1的限制怎么做。
就是一个很简单的插板法。
对每个因子插板法一下。
O(m)的复杂度就能求出来。
正解呢?
考虑容斥。
这样可以把不能为1的那个限制去掉。
枚举一下至少有i个位置为1后,
不妨把上一步中那个方法求的答案看做一个关于i的函数f(i)。
这个i代表了剩下k-i个位置后没有1的限制的因子分配方案数。
然后就可以O(m*k+k)的复杂度求解了。
考虑一个复杂一点的版本,对于每个<=都要求。
那么就推一下式子。
ans[n]=sigema (i=0~n) (-1)^i✖C(n,i)✖f(k)
显然是个很垃圾的FFT的式子,做完了。

posted @ 2019-02-01 06:15  Creed-qwq  阅读(14)  评论(0编辑  收藏  举报