我正在尝试计算每列中最多k个连续值为1的nxm二元矩阵的数量。经过一些研究,我发现找到1列和n行的向量就足够了。例如,如果我们有p个向量,则所需的矩阵数将是m ^ p。 因为n和m非常大(<2.000.000),所以我找不到合适的解决方案。我试图找到一个递推公式,以建立一个矩阵,以帮助我计算答案。你能告诉我任何解决方案吗?
答案 0 :(得分:1)
有一个(k + 1)状态动态程序(状态=先前1的数字,从0到k)。总而言之,你可以通过将k + 1的n次幂乘以k + 1整数矩阵来快速计算它的大项(例如k = 4)
1 1 0 0 0
1 0 1 0 0
1 0 0 1 0
1 0 0 0 1
1 0 0 0 0
模数c并对第一行求和。