[MtOI2018]情侣?给我烧了!

Solution

看到恰好这一关键词,容易想到二项式反演,那么接下来就上套路。令 (F(x)) 表示先强制 (k) 对情侣和睦,剩下的人随便安排座位的方案。

[F(x)=inom{n}{x}^2x!2^x(2n-2x)! ]

上式组合意义为先令其中特定 (x) 行是和睦的((inom{n}{x}) 种),然后选 (x) 对情侣分别和这些排匹配((inom{n}{x}x!) 种),一对情侣的顺序可以交换((2^x) 种),剩下的人随便填(((2n-2x)!) 种)。

(G(x)) 表示恰好有 (x) 对情侣是和睦的的方案数,容易知道

[F(x)=sum_{i=x}^n inom{i}{x} G(i) ]

那么

[G(x)=sum_{i=x}^n (-1)^{i-x} inom{i}{x} F(i)=sum_{i=x}^n (-1)^{i-x} inom{i}{x} inom{n}{i}^2i!2^i(2n-2i)! ]

(G(x))(O(n)) 的,每次询问求 (n) 次,总复杂度 (O(Tn^2)),显然过不了,考虑优化。

将二项式系数展开成阶乘,再将无关变量提到前面,有

[G(x)=sum_{i=x}^n (-1)^{i-x}2^i frac{i!n!n!i!(2n-2i)!}{x!(i-x)!i!i!(n-i)!(n-i)!}=frac{(n!)^2}{x!}sum_{i=x}^n (-1)^{i-x}frac{2^i}{(i-x)!} inom{2n-2i}{n-i} ]

变换下指标

[G(x)=frac{2^x(n!)^2}{x!}sum_{i=0}^{n-x}inom{2n-2x-2i}{n-x-i}frac{(-2)^i}{i!} ]

如果把 (n-x) 看成一个整体,那么后面的和式就和 (n)(x) 无关了,令

[g(m)=sum_{i=0}^m inom{2m-2i}{m-i}frac{(-2)^i}{i!} ]

把所有 (g(m)) 处理出来,复杂度 (O(n^2)),查询 (O(1))。那么

[G(x)=frac{2^x(n!)^2}{x!} g(n-x) ]

总复杂度 (O(n^2+Tn))

[Tleq 2 imes 10^5,nleq 5 imes 10^6 ]

单次询问改为只询问一个特定的 (k)

Solution

需要快速求出 (g(m)) ,那么最好是能 (O(n)) 递推。令 (G(z)) 是序列 (<g(0),g(1),dots>) 的生成函数。观察到 (G(x)) 实际上是两个函数的卷积,

[G(z)=sum_{igeq 0} inom{2i}{i} z^i sum_{igeq 0} frac{(-2)^i}{i!} z^i ]

后面的显然是 (e^{-2z}) ,观察到前面的包含一个 (inom{2i}{i}),所以考虑可以由卡特兰数得到。卡特兰数是

[C_n=frac{inom{2n}{n}}{n+1} ]

其生成函数为

[C^{#}(z)=frac{1-sqrt{1-4z}}{2z}=sum_{igeq 0} C_i z^i ]

对其乘上一个 (z) 后再微分,实际上就是对每个 (C_i) 乘上一个 (i+1),得到 (inom{2i}{i})

[sum_{igeq 0} inom{2i}{i} z^i=frac{d(zC^{#}(z))}{dz}=frac{1}{sqrt{1-4z}} ]

那么

[G(z)=frac{e^{-2z}}{sqrt{1-4z}} ]

对其微分

[G'(z)=frac{8ze^{-2z}}{(1-4z)^{frac{3}{2}}}=frac{8z}{1-4z}frac{e^{-2z}}{sqrt{1-4z}}=frac{8zG(z)}{1-4z} ]

[G'(z)=8zG(z)+4zG'(z) ]

展开为幂级数

[sum_{igeq 0} ig(i)z^{i-1}=8sum_{igeq 0}g(i)z^{i+1}+4sum_{igeq 0} ig(i) z^i ]

统一幂次(注意到左边当 (i=0) 时,式子为 (0)

[sum_{igeq 0} (i+1)g(i+1)z^i=sum_{igeq 1}8g(i-1)z^i+sum_{igeq 0} 4ig(i) z^i ]

至此,我们得到了递推式

[g(n)=frac{4(n-1)}{n}g(n-1)+frac{8}{n}g(n-2) quad (ngeq 2) ]

以及 (g(0)=1)(g(1)=0),复杂度 (O(n+T))

原文地址:https://www.cnblogs.com/wwlwQWQ/p/14314905.html