B4360 [GESP202506 四级] 画布裁剪

· · 题解

欢迎报名洛谷网校,报名课程可以获得对应组别的知识点讲解与答疑服务,期待和大家一起进步!点击图片即可报名。

:::align{center} :::

由于画布是一个矩形的字符矩阵,我们可以使用一个字符串数组 string s[105]; 来存储它。我们的目标是只输出由第 x_1 行到第 x_2 行、第 y_1 列到第 y_2 列构成的这个子矩阵。因为我们的数组行号已经和题目保持了一致,所以我们可以直接用一个循环从 x_1 遍历到 x_2,来处理每一行。

在 C++ 中,字符串里的字符位置是固定的,总是从 0 开始的。所以,题目中提到的“第 j 列”,实际上对应的是字符串里的第 j-1 个字符。因此,当我们想取出第 i 行第 j 列的字符时,对应的代码就是 s[i][j-1]

for (________) { // 枚举第几行
    for (________) // 枚举第几列
        ________; // 输出对应位置的字符
    ________ // 换行
}