我有一个anxm矩阵,其中包含可选的黑白单元格(如棋盘)和一个常数c,如果右下角是黑色,则为0,如果为白色,则为1。
而且我无法确定在 anxm 矩阵上可以找到多少个带有白色右下角的 8×8 不同板。
我在想我应该从右下角开始检查它的颜色。如果它是白色的,那么我有一个很好的案例 (n>8 && m>8),但我不知道如何强加 8 x 8 条件。
如果 nxm 棋盘的右下角是白色的,则有天花板( (n-7)(m-7)/2 )个可能的棋盘。
如果 nxm 棋盘的右下角是黑色的,则有 floor( (n-7)(m-7)/2 ) 个可能的棋盘。
看这个的方法是看棋盘的左上角可以在哪里。它仅限于 nxm 网格中的左上角 (n-7)x(m-7) 子网格。由于棋盘的左上角始终是白色的,因此问题归结为在这个 (n-7)x(m-7) 子网格中有多少个白色方块。
设右下索引为(0, 0)
,左上索引为(N, M)
。现在,每个 8*8 方格的右下角索引(i, j)
应该保持以下属性:
i <= N - 8
j <= M - 8
有(N - 8 + 1) * (M - 8 + 1)
这样的正方形。其中有多少右下角标记为白色?如果你在纸上画一些棋盘,你会发现答案是
ceil((N - 7) * (M - 7) / 2)