题意:称一个长度为 n n n,值域为 [ 1 , D ] [1,D] [1,D] 整数序列为合法序列,当且仅当序列中能选出 m m m 对数相等。问合法序列数。
1 ≤ D ≤ 1 0 5 , 1 ≤ n , m ≤ 1 0 9 1\leq D\leq 10^5,1\leq n,m\leq 10^9 1≤D≤105,1≤n,m≤109。
题解:
设
c
i
c_i
ci 表示数
i
i
i 在序列中的出现次数,那么限制转化成:
∑
i
=
1
D
⌊
c
i
2
⌋
≥
m
\sum_{i=1}^D \lfloor\frac{c_i}{2}\rfloor\geq m
i=1∑D⌊2ci⌋≥m
把
⌊
c
i
2
⌋
\lfloor\dfrac{c_i}{2}\rfloor
⌊2ci⌋ 转化为
c
i
−
c
i
m
o
d
2
2
\dfrac{c_i-c_i\bmod 2}{2}
2ci−cimod2,这样做的好处是
∑
c
i
\sum c_i
∑ci 是固定的,于是限制就能转化成:
∑
i
=
1
D
c
i
m
o
d
2
≤
n
−
2
m
\sum_{i=1}^D c_i\bmod 2\leq n-2m
i=1∑Dcimod2≤n−2m
左式的取值范围是
[
0
,
D
]
[0,D]
[0,D],所以若右式
n
−
2
m
n-2m
n−2m 不在这个范围的话,可以直接特判掉,现在只考虑
n
−
2
m
∈
[
0
,
D
]
n-2m\in [0,D]
n−2m∈[0,D] 的情况。
现在我们只关心 c i c_i ci 的奇偶性。
设 f k f_k fk 表示钦定 k k k 个 c i c_i ci 为奇数的方案数,求出 f f f 之后恰好为 k k k 个的方案数可以卷出来。
对于一种 c i c_i ci,强制钦定它为奇数的 EGF 为 { 0 , 1 , 0 , 1 , ⋯ } = e x − e − x 2 \{0,1,0,1,\cdots\}=\dfrac{e^x-e^{-x}}{2} {0,1,0,1,⋯}=2ex−e−x,否则任选的 EGF 为 e x e^x ex。
于是:
f
k
=
(
D
k
)
[
x
n
]
(
e
x
−
e
−
x
2
)
k
(
e
x
)
D
−
k
=
(
D
k
)
1
2
k
[
x
n
]
∑
i
=
0
k
(
k
i
)
(
−
1
)
k
−
i
e
(
D
−
2
k
+
2
i
)
x
=
(
D
k
)
1
2
k
∑
i
=
0
k
(
k
i
)
(
−
1
)
k
−
i
(
D
−
2
k
+
2
i
)
n
n
!
\begin{aligned} f_k&=\binom{D}{k}[x^n]\left(\dfrac{e^x-e^{-x}}{2}\right)^k\left(e^x\right)^{D-k}\\ &=\binom{D}{k}\frac{1}{2^k}[x^n]\sum_{i=0}^k\binom{k}{i}(-1)^{k-i}e^{(D-2k+2i)x}\\ &=\binom{D}{k}\frac{1}{2^k}\sum_{i=0}^k\binom{k}{i}(-1)^{k-i}\frac{(D-2k+2i)^n}{n!}\\ \end{aligned}
fk=(kD)[xn](2ex−e−x)k(ex)D−k=(kD)2k1[xn]i=0∑k(ik)(−1)k−ie(D−2k+2i)x=(kD)2k1i=0∑k(ik)(−1)k−in!(D−2k+2i)n
卷一下即可。
代码咕了。