做法一:首先设 $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)$。
题目3353 情侣?给我烧了
11
评论
2023-04-14 22:51:01
|