20241114 NOIP訓練賽 T3

kuailedetongnian發表於2024-11-15

簡化題面:

有一個 \(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)\)

相關文章