定义
容易发现 ({n rack m}_1 = inom{n}{m})。
同时,展开可得:
结论
- ({n rack m}_q = {n rack n-m}_q)
显然。
- 若 (n ge 1), ({n rack m}_q = {n-1 rack m-1}_q + q^m {n-1 rack m}_q)
证明
下文的 (q) 为 (q) 无线趋近于 q
的。
带入 (m = n - m) 可以证明 ({n rack m}_q = q^{n-m} {n-1 rack m-1}_q + {n-1 rack m}_q)。
同时我们得到了一个 ({n rack m}_q) 的组合意义: 从 ((0,0)) 开始,每次向上或向右走一步,走到 ((n-m,m)) 的所有路径中,(q^{路径右下方的格子数}) 的和。
- (prod_{i=0}^{n-1} (1+q^iy) = sumlimits_{i=0}^n q^{inom{i}{2}} {n rack i}_q y^i)
证明
在 (n = 1) 的时候显然满足。
(n > 1) 时:
同时,我们又得到了一个 ({n rack i}_q) 的组合意义:在一个长度为 (n) 的序列中,取集合 (S),({n rack i}_q = sumlimits_{|S| = i} prod_{i in S} q^{i 前没有被选的元素数})
- ({n + m rack k}_q = sumlimits_{i=0}^k q^{(n-i)(k-i)} {n rack i}_q {m rack k-i}_q)
证明
可以观察其组合意义:({n + m rack k}_q) 即为有长度为 (n) 的序列,取集合 (S),(prod_{i in S} q^{i 前没有被选的元素数})。
拆成左右两半,左边 (n) 个元素,右边 (m) 个元素。设左边集合为 (S_l),右边为 (S_r),那么:
左边贡献为 (prod_{i in S_l} q^{左边 i 前没有被选的元素数}),右边为 (prod_{i in S_r} q^{i 前没有被选的元素数 + n - |S_l|} = q^{(n-|S_l|)|S_r|} prod_{i in S_r} q^{i 前没有被选的元素数})。
原式相当于枚举 (|S_l|),然后相乘两边贡献。
- ({n + m + 1 rack n + 1}_q = sumlimits_{i=0}^m q^i {n + i rack n}_q)
证明:不断展开结论 2
中的 ({n rack m}_q = q^{n-m} {n-1 rack m-1}_q + {n-1 rack m}_q) 即可。
- (frac{1}{prod_{i=0}^n (1-q^ix)} = sumlimits_{i ge 0} x^i {i+n rack n}_q)
证明
考虑数学归纳。在 (n = 0) 的时候显然成立。
因此有 (F = frac{1}{1 - q^nx} frac{1}{prod_{i=0}^{n - 1} (1-q^ix)} = frac{1}{prod_{i=0}^{n} (1-q^ix)})。
试试看!
CF1603F
考虑如何求秩为 (r) 的 (n) 元组个数。
考虑让初始序列只剩下基中的元素,然后再在元素间插入。基中的元素只要满足前面的元素凑不出来当前元素即可,显然方案数是 (prod_{0 le i < r} (2^k - 2^i))。
接着在基中的元素间插入。插入在第 (i) 个元素之后的方案数显然是 (2^i)。
因此插入产生贡献的生成函数是 (prod_{0 le i le r} frac{1}{1-2^ix} [x^{n-r}])。
根据结论 6,我们可以得到 (prod_{0 le i le r} frac{1}{1-2^ix} [x^{n-r}] = {n rack r}_2)。
因此秩为 (r) 的 (n) 元组个数为 ({n rack r}_2prod_{0 le i < r} (2^k - 2^i))
考虑原问题怎么做。
如果 (x = 0),那么答案就是秩为 (k) 的矩阵个数。
如果 (x eq 0),可以发现对所有 (x) 答案都是一样的,所以只要算出能表示出多少非 (0) 数即可。如果秩为 (r),那能表示出 (2^r-1) 个数,所以直接做即可。
SOJ #703. 【SPC #3】布尔立方 ~ Boolean Cube
发现如果不考虑主视和左视互不相同,是好做的。
考虑容斥,钦定左视图分成了 (i) 组,主视图分成了 (j) 组,设其答案为 (G_{i,j})。设左视图恰好分成了 (i) 组,主视图恰好分成了 (j) 组的方案为 (F_{i,j})。
那么有 (G_{n,m} = sumlimits_{i le n} sumlimits_{j le m} egin{Bmatrix} n \ i end{Bmatrix}egin{Bmatrix} m \ j end{Bmatrix} F_{i,j})。
考虑斯特林反演,得 (F_{n,m} = sumlimits_{i le n} sumlimits_{j le m} egin{bmatrix} n \ i end{bmatrix}egin{bmatrix} m \ j end{bmatrix} (-1)^{n-i+m-j} G_{i,j})。
因此答案为 :
根据上一题的结论,有 (G_{n,m} = prod_{1 le k le H} {n rack r_k}_2 prod_{0 le i < r_k} (2^m - 2^i))
而 (prod_{0 le i < r_k} (2^m - 2^i) = prod_{0 le i < r_k} 2^i(2^{m-i} - 1) = 2^{inom{r_k}{2}} frac{[m]!_2}{[m-r_k]!_2})
注意到现在第一维和第二维无关了!
考虑如何对所有 (i) 算出 (f_i = prod_{1 le k le H} frac{[i]!_2}{[i-r_k]!_2})。这里只有乘法,因此求 (ln) 之后就变成了 (Hln([i]!_2) - sum_{1 le k le H} ln([i-r_k]!_2)),卷积即可(题解做法好像是 CZT,差分一下确实是 CZT 的形式,可能会更好写)
然后目标变为了对所有 (0 le N le 10^5),求 (g_N = sumlimits_{i le N} egin{bmatrix} N \ i end{bmatrix} (-1)^{N-i} f_i) 的值。
观察到这很像是下降幂转普通幂的柿子,但转移矩阵似乎恰好反了。
因此考虑转置原理。我们要求的是:
(egin{pmatrix} egin{bmatrix} 0 \ 0 end{bmatrix} & -egin{bmatrix} 0 \ 1 end{bmatrix} & egin{bmatrix} 0 \ 2 end{bmatrix} & cdots& (-1)^negin{bmatrix} 0 \ n end{bmatrix} \ -egin{bmatrix} 1 \ 0 end{bmatrix} & egin{bmatrix} 1 \ 1 end{bmatrix} & -egin{bmatrix} 1 \ 2 end{bmatrix} & cdots& (-1)^{n-1} egin{bmatrix} 1 \ n end{bmatrix} \ egin{bmatrix} 2 \ 0 end{bmatrix} & -egin{bmatrix} 2 \ 1 end{bmatrix} & egin{bmatrix} 2 \ 2 end{bmatrix} & cdots& (-1)^{n-2}egin{bmatrix} 0 \ n end{bmatrix} \ vdots&vdots&vdots&ddots&vdots\ (-1)^negin{bmatrix} n \ 0 end{bmatrix} & (-1)^{n-1}egin{bmatrix} n \ 1 end{bmatrix} & (-1)^{n-2}egin{bmatrix} n \ 2 end{bmatrix} & cdots& (-1)^{n-n}egin{bmatrix} n \ n end{bmatrix} \ end{pmatrix} f)
考虑求其转置:给出 (u),求 (v_k = sumlimits_{i=0}^{n} u_i (-1)^{n-i} egin{bmatrix} i \ k end{bmatrix})。
这下就是下降幂转普通幂了!