• q-binomial 学习笔记


    定义

    [[n]_q = sumlimits_{i=0}^{n-1} q^i = lim_{x ightarrow q} frac{1-x^n}{1-x}, [ n ] !_q = prod_{i=1}^n [i]_q, {n rack m}_q = frac {[n]!_q} {[m]!_q [n - m]!_q} ]

    容易发现 ({n rack m}_1 = inom{n}{m})

    同时,展开可得:

    [{n rack m}_q = lim_{x ightarrow q} frac{prod_{1 le i le n}frac{1-x^i}{1-x}}{prod_{1 le i le m}frac{1-x^m}{1-x}prod_{1 le i le n-m}frac{1-x^m}{1-x}} \= lim_{x ightarrow q}frac{prod_{n-m+1 le i le n} (1-x^i)}{prod_{1 le i le m} (1-x^i)} ]

    结论

    1. ({n rack m}_q = {n rack n-m}_q)

    显然。

    1. (n ge 1)({n rack m}_q = {n-1 rack m-1}_q + q^m {n-1 rack m}_q)
    证明

    下文的 (q)(q) 无线趋近于 q 的。

    [{n-1 rack m-1}_q + q^m{n-1 rack m}_q ]

    [= frac{prod_{n-m+1 le i le n-1} (1-q^i)}{prod_{1 le i le m-1} (1-q^i)} + q^mfrac{prod_{n-m le i le n-1} (1-q^i)}{prod_{1 le i le m} (1-q^i)} ]

    [= frac{((1-q^m) prod_{n-m+1 le i le n-1} (1-q^i))+(q^mprod_{n-m le i le n-1} (1-q^i))}{prod_{1 le i le m} (1-q^i)} ]

    [= frac{((1-q^m) prod_{n-m+1 le i le n-1} (1-q^i))+((q^m-q^{n})prod_{n-m+1 le i le n-1} (1-q^i))}{prod_{1 le i le m} (1-q^i)} ]

    [= frac{((1-q^{n})prod_{n-m+1 le i le n-1} (1-q^i))}{prod_{1 le i le m} (1-q^i)} ]

    [= frac{prod_{n-m+1 le i le n} (1-q^i))}{prod_{1 le i le m} (1-q^i)} ]

    [= {n rack m}_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^{路径右下方的格子数}) 的和。

    1. (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) 时:

    [prod_{i=0}^{n-1} (1+q^iy) = (1+q^{n-1}y) prod_{i=0}^{n-2} (1+q^iy) ]

    [= sumlimits_{i=0}^{n-1} q^{inom{i}{2}} {n-1 rack i}_q y^i + sumlimits_{i=1}^{n} q^{inom{i-1}{2}} q^{n-1} {n-1 rack i-1}_q y^i ]

    [= sumlimits_{i=0}^{n} (q^{inom{i}{2}} {n-1 rack i}_q + q^{inom{i-1}{2}} q^{i-1} q^{n-i} {n-1 rack i-1}_q) y^i ]

    [= sumlimits_{i=0}^{n} q^{inom{i}{2}} {n rack i}_q y^i ]

    同时,我们又得到了一个 ({n rack i}_q) 的组合意义:在一个长度为 (n) 的序列中,取集合 (S)({n rack i}_q = sumlimits_{|S| = i} prod_{i in S} q^{i 前没有被选的元素数})

    1. ({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|),然后相乘两边贡献。

    1. ({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) 即可。

    1. (frac{1}{prod_{i=0}^n (1-q^ix)} = sumlimits_{i ge 0} x^i {i+n rack n}_q)
    证明

    考虑数学归纳。在 (n = 0) 的时候显然成立。

    [F = sumlimits_{i ge 0} x^i {i+n rack n}_q ]

    [= sumlimits_{i ge 0} x^i {i+n-1 rack n-1}_q + q^n sumlimits_{i ge 0} x^{i} {i+n-1 rack n}_q ]

    [= sumlimits_{i ge 0} x^i {i+n-1 rack n-1}_q + q^n x sumlimits_{i ge 0} x^{i} {i+n rack n}_q ]

    [= frac{1}{prod_{i=0}^{n-1} (1-q^ix)} + q^n x F ]

    因此有 (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) 个数,所以直接做即可。

    aclink

    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})

    因此答案为 :

    [sumlimits_{i le L} sumlimits_{j le W} egin{bmatrix} L \ i end{bmatrix}egin{bmatrix} W \ j end{bmatrix} (-1)^{W-j+L-i} 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})

    [sumlimits_{i le L} sumlimits_{j le W} egin{bmatrix} L \ i end{bmatrix}egin{bmatrix} W \ j end{bmatrix} (-1)^{W-j+L-i} G_{i,j} ]

    [sumlimits_{i le L} sumlimits_{j le W} egin{bmatrix} L \ i end{bmatrix}egin{bmatrix}F W \ j end{bmatrix} (-1)^{W-j+L-i} prod_{1 le k le H} 2^{inom{r_k}{2}} frac{[m]!_2}{[m-r_k]!_2}{n rack r_k}_2 ]

    注意到现在第一维和第二维无关了!

    [(prod_{1 le k le H} 2^{inom{r_k}{2}} frac{1}{[r_k]!_2}) (sumlimits_{i le L} egin{bmatrix} L \ i end{bmatrix} (-1)^{L-i} prod_{1 le k le H} frac{[i]!_2}{[i-r_k]!_2} ) (sumlimits_{j le W} egin{bmatrix} W \ j end{bmatrix} (-1)^{W-j}prod_{1 le k le H} frac{[j]!_2}{[j-r_k]!}) ]

    考虑如何对所有 (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})

    这下就是下降幂转普通幂了!

    link,还未 AC(雾)

  • 相关阅读:
    java使用google开源工具实现图片压缩
    MyBatis实现Mysql数据库分库分表操作和总结
    简单记录你博客园的访问人数
    细说spring事务配置属性
    hazelcast初探
    jstorm之于storm
    如何让其他机器访问你的oracle数据库
    问题解决:bash: fork: retry: Resource temporarily unavailable
    分布式锁的几种实现方式
    建立索引的原则总结
  • 原文地址:https://www.cnblogs.com/zkyJuruo/p/15515243.html
Copyright © 2020-2023  润新知