(其实是广义五边形数定理学习笔记)
广义五边形数定理:
[large { prod_{i=1}^ infty (1-x^i) = sum_i (-1)^i ( x^{frac{i(3i-1)}{2}} + x^{frac{i(3i+1)}{2}})}
]
背过就好了
不难发现 ([x^n]prod _{i=1}^infty(1-x^i)) 的组合意义为 将 (n) 拆分成若干不同的正整数的方案数,并且拆成奇数个数的贡献系数为 (-1),偶数为 (1)。
Ferrers 图
拆分方案可以用 Ferrers 图形象地表示出来。
Ferrers 图的定义为若干行格子,长度和恰好为 (n),且长度严格递减。每一行表示拆出来的一个数。
比如 18=7+6+4+1 的表示为:
[egin{aligned}
&0 0 0 0 0 0 0\
&0 0 0 0 0 0\
&0 0 0 0\
&0\
end{aligned}
]
记 (m) 为最后一行的格子数, (s) 为对角线上的格子数。考虑构造一种映射关系。如果 (m le s),那么把最后一行扔到前 (m) 行的最后边;如果 (m > s),那么把 (m> s),那么把对角线拎出来扔到最后一行的下面。这样的话大多数情况都会让(行数的)奇偶构成双射。正负抵消后为 (0)。
但是有两种情况会出锅,一种是最后一行和对角线相等且相交:
0 0 0 0 0
0 0 0 0
0 0 0
变成
0 0 0 0 0 0
0 0 0 0 0
0
这时候构成单射,没有统计到。此时形状为梯形,可用等差数列表示:(设有 (k) 行)
[k + (k + 1) + ... + (2k-1) = frac{(3k-1)k}{2}
]
注意有个 (-1) 的系数,为:
[-frac{(3k-1)k}{2}
]
还有一种是最后一行比对角线多 (1) 且相交:
0 0 0 0 0 0
0 0 0 0 0
0 0 0 0
变成
0 0 0 0 0
0 0 0 0
0 0 0
0 0 0
变成了不合法情况,不能构成双射,需要额外加上。此时的 (n) 为:
[-frac{k(3k+1)}{2}
]
所以最终的生成函数为:
[sum_i (-1)^k (x^{frac{k(3k-1)}{2}} + x^{frac{k(3k+1)}{2}})
]
注意到小于等于 (n) 的有值的项的数量为 (O(sqrt n)) 级别的,于是可以使用暴力多项式算法。