Gravatar
op_组撒头屯
积分:3036
提交:338 / 677

Pro3353  情侣?给我烧了

做法一:

首先设 $f_i$ 表示至少 $i$ 对和睦的方案,$g_i$ 表示恰好 $i$ 对和睦的方案。

显然有:

$$f_i=\sum_{j=i}^{n}{C^i_jg_j}$$

根据二项式反演,有:

$$g_i=\sum_{j=i}^{n}{(-1)^{j-i}C^i_jf_j}$$

而我们还有:

$$f_i=C^i_nA^i_n2^i(2n-2i)!$$

于是:

$$g_i=\sum_{j=i}^{n}{(-1)^{j-i}C^i_jC^j_nA^j_n2^j(2n-2j)!}$$

$$=\frac{n!^2}{i!}\sum_{j=i}^{n}{\frac{(-1)^{j-i}2^j}{(j-i)!(n-j)!}}$$

显然可以卷积,于是时间复杂度 $O(Tn\log n)$.



本题还有个加强版,每次询问只需要求一组 $(n,k)$ 的答案,但 $T \le 2e5,n \le 5e6$。


做法二:

发现实际要求的是错排的方案数,记 $F_n$ 表示 $n$ 对情侣的错排方案数,于是:

$$ans(n,k)=C^k_nA^k_n2^kF_{n-k}=(C^k_n)^2k!2^kF_{n-k}$$

而显然:

$$\sum_{k=0}^{n}{ans(n,k)}=\sum_{k=0}^{n}{(C^k_n)^2k!2^kF_{n-k}}=(2n)!$$

化成卷积形式:

$$\sum_{k=0}^{n}{\frac{2^k}{k!}\frac{F_{n-k}}{(n-k)!^2}}=\frac{(2n)!}{n!^2}$$

于是我们设:

$$A(x)=\sum_{i \ge 0}{\frac{2^i}{i!}x^i}$$

有:

$$A(x)=\sum_{i \ge 0}{\frac{(2x)^i}{i!}}=e^{2x}$$

再设:

$$F(x)=\sum_{i \ge 0}{\frac{F_i}{i!^2}x^i}$$

再设:

$$B(x)=\sum_{i \ge 0}{\frac{(2i)!}{i!^2}x^i}$$

根据广义二项式定理,有:

$$B(x)=(1-4x)^{-\frac{1}{2}}$$

再代入上边的卷积式得:

$$A \cdot F=B$$

也就是:

$$F(x)=\frac{e^{-2x}}{(1-4x)^{\frac{1}{2}}}$$

求个导:

$$F'(x)=\frac{8xe^{-2x}}{(1-4x)^{\frac{3}{2}}}=\frac{8x}{1-4x}F(x)$$

于是得到:

$$F'(x)=4xF'(x)+8xF(x)$$

观察系数:

$$F_{n+1}=4n(n+1)F_n+8n^2(n+1)F_{n-1}$$

终于得到了递推式,可以 $O(n+T)$ 解决加强版。本题同样也可 $O(n+Tn)$。



2023-04-14 22:51:01    
我有话要说
暂无人分享评论!