五边形数定理和整数划分问题

五边形数:形如 k ( 3 k − 1 ) 2 \frac{k(3k-1)}{2} 2k(3k1) 的数,其中 k k k 为任意整数(可以为负)。

定义欧拉函数:(与 φ ( n ) \varphi(n) φ(n) 为小于等于 n n n 的正整数中与 n n n 互质的数的个数不同)
ϕ ( x ) = ∏ i = 1 ∞ ( 1 − x i ) \phi(x)=\prod_{i=1}^{\infty}(1-x^i) ϕ(x)=i=1(1xi)
五边形数定理:
ϕ ( x ) = ∑ k = − ∞ ∞ ( − 1 ) k x k ( 3 k − 1 ) 2 = 1 + ∑ k = 1 ∞ ( − 1 ) k x k ( 3 k ± 1 ) 2 \phi(x)=\sum_{k=-\infty}^{\infty}(-1)^kx^{\tfrac{k(3k-1)}{2}}=1+\sum_{k=1}^{\infty}(-1)^kx^{\tfrac{k(3k\pm 1)}{2}} ϕ(x)=k=(1)kx2k(3k1)=1+k=1(1)kx2k(3k±1)
证明:十分巧妙,可以见 blog1blog2


回到整数划分问题,设 p n p_n pn 表示将 n n n 划分为若干个可以相同的正整数的方案数,那么 p n p_n pn 的生成函数为:
P ( x ) = ∏ i = 1 ∞ ( 1 + x i + x 2 i + ⋯   ) = ∏ i = 1 ∞ 1 1 − x i = 1 ϕ ( x ) P(x)=\prod_{i=1}^{\infty}(1+x^i+x^{2i}+\cdots)=\prod_{i=1}^{\infty}\dfrac{1}{1-x^i}=\dfrac{1}{\phi(x)} P(x)=i=1(1+xi+x2i+)=i=11xi1=ϕ(x)1
于是:
P ( x ) ϕ ( x ) = 1 P(x)\phi(x)=1 P(x)ϕ(x)=1
考虑左右两边的 n n n 次项系数,在 n > 0 n>0 n>0 时右边的 n n n 次项系数为 0 0 0,左边展开得到:
p n − p n − 1 − p n − 2 + p n − 5 + p n − 7 − ⋯ = 0 p_n-p_{n-1}-p_{n-2}+p_{n-5}+p_{n-7}-\cdots=0 pnpn1pn2+pn5+pn7=0
那么 p n p_n pn 就可以 O ( n n ) O(n\sqrt n) O(nn ) 递推了。


例题:

【LOJ6077】逆序对 加强版

假瑞出的毒瘤题/se

改为 m m m 次询问 n , k n,k n,k 的答案的奇偶性,保证 k ≤ n k\leq n kn n , k ≤ 1 0 8 n,k\leq 10^8 n,k108

转化为求:
[ x k ] ∏ i = 1 n ( 1 − x i ) ( 1 − x ) n [x^k]\dfrac{\prod_{i=1}^n(1-x^i)}{(1-x)^n} [xk](1x)ni=1n(1xi)
F ( x ) = ∏ i = 1 n ( 1 − x i ) F(x)=\prod_{i=1}^n(1-x^i) F(x)=i=1n(1xi) G ( x ) = 1 ( 1 − x ) n G(x)=\dfrac{1}{(1-x)^n} G(x)=(1x)n1

由五边形数定理知 F ( x ) F(x) F(x) O ( n ) O(\sqrt n) O(n ) 个位置有值。

考虑 G ( x ) G(x) G(x),其 k k k 次项的组合意义相当于将 k k k 拆分为 n n n 个自然数的方案数,用插板法可知为 ( k + n − 1 n − 1 ) \dbinom{k+n-1}{n-1} (n1k+n1)

注意到 ( k + n − 1 n − 1 )   m o d   2 = 1 \dbinom{k+n-1}{n-1}\bmod 2=1 (n1k+n1)mod2=1 当且仅当 ( k + n − 1 ) & ( n − 1 ) = ( n − 1 ) (k+n-1)\&(n-1)=(n-1) (k+n1)&(n1)=(n1),即 k & ( n − 1 ) = 0 k\&(n-1)=0 k&(n1)=0

于是:
G ( x ) ≡ ∏ 2 t & ( n − 1 ) = 0 ( 1 + x 2 t ) G(x)\equiv \prod_{2^t\&(n-1)=0}(1+x^{2^t}) G(x)2t&(n1)=0(1+x2t)
O ( n ) O(\sqrt n) O(n ) F ( x ) F(x) F(x) 预处理出来,那么 F ( x ) G ( x ) F(x)G(x) F(x)G(x) 就相当于 F ( x ) F(x) F(x) log ⁡ n \log n logn 次只有两项的多项式。

使用 bitset 优化即可,时间复杂度 O ( n + n log ⁡ n w + m ) O(\sqrt n+\frac{n\log n}{w}+m) O(n +wnlogn+m)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值