20241114 NOIP训练赛 T3

简化题面:

有一个 n+1k 列的 01 矩阵,行标号 0n,列标号 1k,求满足一下条件的矩阵个数,对 109+7 取模:

  1. 对于 0n1 行子矩阵中,没有一列全为 1
  2. 对于 1n 行子矩阵中,存在一列全为 0

3k,n1018


考虑中间 n1 行有多少列全是 0,多少列全是 1

设有 i 列全是 0j 列全是 1 选择哪些列的方案是 (ki)(kij)

其他每列的填法是 2n12,所以方案数是 (2n12)kij

对于第一行,j 列全是 1 的只能填 0,其他格子随便填,方案数是 2kj

对于最后一行,i 列全是 0 的至少有一个填 0,其他格子随便填,方案数是 2ki(2i1)

综上答案为

i=0kj=0ki(ki)(kij)(2n12)kij2kj2ki(2i1)=i=0k(ki)2ki(2i1)j=0ki(kij)(2n12)kij2kj=i=0k(ki)2ki2ij=0ki(kij)(2n12)kij2kji=0k(ki)2kij=0ki(kij)(2n12)kij2kj=i=0k(ki)2kj=0ki(kij)(2n12)kij2kji=0k(ki)2k2ij=0ki(kij)(2n12)kij2kj=2k(i=0k(ki)j=0ki(kij)(2n12)kij2kji=0k(ki)2ij=0ki(kij)(2n12)kij2kj)=2k(i=0k(ki)2i2ij=0ki(kij)(2n12)kij2kji=0k(ki)2ij=0ki(kij)(2n12)kij2kj)

单看 2ij=0ki(kij)(2n12)kij2kj

2ij=0ki(kij)(2n12)kij2kj=j=0ki(kij)(2n12)kij2kij=j=0ki(kij)(2n4)kij1kij=((2n4)+1)ki=(2n3)ki

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

原式为

2k(i=0k(ki)2i(2n3)kii=0k(ki)(2n3)ki)=2k(i=0k(ki)2i(2n3)kii=0k(ki)(2n3)ki1i)=2k((2+(2n3))k(2n3+1)k)=2k((2n1)k(2n2)k)

答案即为

2k((2n1)k(2n2)k)

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

本文作者:kuailedetongnian

本文链接:https://www.cnblogs.com/kuailedetongnian/p/18547271

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   kuailedetongnian  阅读(14)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起