B4264 [GESP202503 四级] 二阶矩阵

· · 题解

欢迎报名洛谷网校,期待和大家一起进步!

:::align{center} :::

本题是一道较为基础的考察二维数组的题目。

既然我们要找所有 2 \times 2 的“好的”小矩阵,最直接的想法就是:我们把大表格里所有可能的 2 \times 2 小矩阵都找出来,然后一个一个地检查它们是不是“好的”。

一个 2 \times 2 的小方块是由它的左上角位置决定的。假设这是第 r 行第 c 列,我们就知道了这个小方块的四个数字:

因此我们只需要判断 A[r][c] \times A[r+1][c+1] 是不是等于 A[r][c+1] \times A[r+1][c] 即可,使用计数变量统计好的子矩阵个数即可。

参考代码:

for (int r = 0; r < n - 1; r++)
    for (int c = 0; c < m - 1; c++)
        if (a[r][c] * a[r + 1][c + 1] == a[r + 1][c] * a[r][c + 1])
            ans++;