yy一个方案有多少对相邻的相同,显然是m-颜色段数
我们令 f i , j f_{i,j} fi,j表示前i种颜色分成j段颜色段数的方案数。
注意,我们这里允许两个同样颜色的颜色段相邻。
可以得到转移方程 f i , j = ∑ k = 0 j − 1 f i − 1 , k ∗ ( a i − 1 j − k − 1 ) ∗ 1 j − k f_{i,j}=\sum_{k=0}^{j-1}f_{i-1,k}*\binom{a_{i}-1}{j-k-1}*\frac{1}{j-k} fi,j=∑k=0j−1fi−1,k∗(j−k−1ai−1)∗j−k1
可以分治FFT完成。
当然,这求出来的不是真正的f。
我们需要执行 f n , i = i ! ∗ f n , i ( i ϵ [ 1 , m ] ) f_{n,i}=i!*f_{n,i}(i\epsilon [1,m]) fn,i=i!∗fn,i(iϵ[1,m])
不妨令 g i = f n , i g_{i}=f_{n,i} gi
[XSY 2666][分治FFT][容斥]排列问题
最新推荐文章于 2022-07-06 00:11:28 发布