20241114 NOIP训练赛 T3

简化题面:

有一个 \(n+1\)\(k\) 列的 \(01\) 矩阵,行标号 \(0\sim n\),列标号 \(1\sim k\),求满足一下条件的矩阵个数,对 \(10^9+7\) 取模:

  1. 对于 \(0\sim n-1\) 行子矩阵中,没有一列全为 \(1\)
  2. 对于 \(1\sim n\) 行子矩阵中,存在一列全为 \(0\)

\(3\le k,n \le 10^{18}\)


考虑中间 \(n − 1\) 行有多少列全是 \(0\),多少列全是 \(1\)

设有 \(i\) 列全是 \(0\)\(j\) 列全是 \(1\) 选择哪些列的方案是 \(\binom{k}{i}\binom{k-i}{j}\)

其他每列的填法是 \(2^{n-1}-2\),所以方案数是 \((2^{n-1}-2)^{k-i-j}\)

对于第一行,\(j\) 列全是 \(1\) 的只能填 \(0\),其他格子随便填,方案数是 \(2^{k−j}\)

对于最后一行,\(i\) 列全是 \(0\) 的至少有一个填 \(0\),其他格子随便填,方案数是 \(2^{k−i}(2^i − 1)\)

综上答案为

\[\begin{aligned} & \sum\limits_{i=0}^{k}\sum\limits_{j=0}^{k-i}\binom{k}{i}\binom{k-i}{j} \cdot (2^{n-1}-2)^{k-i-j} \cdot 2^{k−j} \cdot 2^{k−i}(2^i − 1) \\ & =\sum\limits_{i=0}^{k}\binom{k}{i}2^{k−i}(2^i − 1)\sum\limits_{j=0}^{k-i}\binom{k-i}{j}(2^{n-1}-2)^{k-i-j}2^{k−j} \\ & =\sum\limits_{i=0}^{k}\binom{k}{i}2^{k−i}2^i\sum\limits_{j=0}^{k-i}\binom{k-i}{j}(2^{n-1}-2)^{k-i-j}2^{k−j} - \sum\limits_{i=0}^{k}\binom{k}{i}2^{k−i}\sum\limits_{j=0}^{k-i}\binom{k-i}{j}(2^{n-1}-2)^{k-i-j}2^{k−j} \\ & =\sum\limits_{i=0}^{k}\binom{k}{i}2^k\sum\limits_{j=0}^{k-i}\binom{k-i}{j}(2^{n-1}-2)^{k-i-j}2^{k−j} - \sum\limits_{i=0}^{k}\binom{k}{i}2^{k}2^{−i}\sum\limits_{j=0}^{k-i}\binom{k-i}{j}(2^{n-1}-2)^{k-i-j}2^{k−j} \\ & =2^k(\sum\limits_{i=0}^{k}\binom{k}{i}\sum\limits_{j=0}^{k-i}\binom{k-i}{j}(2^{n-1}-2)^{k-i-j}2^{k−j} - \sum\limits_{i=0}^{k}\binom{k}{i}2^{−i}\sum\limits_{j=0}^{k-i}\binom{k-i}{j}(2^{n-1}-2)^{k-i-j}2^{k−j}) \\ & =2^k(\sum\limits_{i=0}^{k}\binom{k}{i}2^i2^{-i}\sum\limits_{j=0}^{k-i}\binom{k-i}{j}(2^{n-1}-2)^{k-i-j}2^{k−j} - \sum\limits_{i=0}^{k}\binom{k}{i}2^{−i}\sum\limits_{j=0}^{k-i}\binom{k-i}{j}(2^{n-1}-2)^{k-i-j}2^{k−j}) \\ \end{aligned} \]

单看 \(2^{−i}\sum\limits_{j=0}^{k-i}\binom{k-i}{j}(2^{n-1}-2)^{k-i-j}2^{k−j}\)

\[\begin{aligned} & 2^{−i}\sum\limits_{j=0}^{k-i}\binom{k-i}{j}(2^{n-1}-2)^{k-i-j}2^{k−j} \\ & =\sum\limits_{j=0}^{k-i}\binom{k-i}{j}(2^{n-1}-2)^{k-i-j}2^{k−i-j} \\ & =\sum\limits_{j=0}^{k-i}\binom{k-i}{j}(2^n-4)^{k-i-j}1^{k-i-j} \\ & =((2^n-4)+1)^{k-i} \\ & =(2^n-3)^{k-i} \end{aligned} \]

倒数第二步是二项式定理。

原式为

\[\begin{aligned} & 2^k(\sum\limits_{i=0}^{k}\binom{k}{i}2^i(2^n-3)^{k-i} - \sum\limits_{i=0}^{k}\binom{k}{i}(2^n-3)^{k-i}) \\ &= 2^k(\sum\limits_{i=0}^{k}\binom{k}{i}2^i(2^n-3)^{k-i} - \sum\limits_{i=0}^{k}\binom{k}{i}(2^n-3)^{k-i}1^i) \\ &= 2^k((2+(2^n-3))^k-(2^n-3+1)^k) \\ &= 2^k((2^n-1)^k - (2^n-2)^k) \end{aligned} \]

答案即为

\[2^k((2^n-1)^k - (2^n-2)^k) \]

使用快速幂计算即可,时间复杂度 \(O(\log)\)

posted @ 2024-11-15 08:08  kuailedetongnian  阅读(6)  评论(0编辑  收藏  举报