簡化題面:
有一個 \(n+1\) 行 \(k\) 列的 \(01\) 矩陣,行標號 \(0\sim n\),列標號 \(1\sim k\),求滿足一下條件的矩陣個數,對 \(10^9+7\) 取模:
- 對於 \(0\sim n-1\) 行子矩陣中,沒有一列全為 \(1\)。
- 對於 \(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)\)。