B3890 [语言月赛 202311] 表格处理 题解

· · 题解

Source & Knowledge

2023 年 11 月语言月赛,由洛谷网校入门计划/基础计划提供。

考察数组的运用。

文字题解

我们分别实现题目中给定的两个操作。

合并操作

观察题目中给定的合并操作的描述,我们会发现以下的特征:我们可以将原表格划分成若干 2\times 2 的小表格。每个表格仅会保留最左上角的那个位置。其他的三个数会被加入到表格最左上角的值。以样例为例:

\begin{bmatrix}\blue2 & \blue7 & \red1 & \red8 \\ \blue1 & \blue8 & \red2 & \red8 \\ \green3 & \green1 & \purple4 & \purple1 \\ \green5 & \green9 & \purple2 & \purple6 \end{bmatrix}

我们用四种不同的颜色区分出了四个小表格。如果每个表格仅保留最左上的位置,其他的数加入到小表格最左上的值的话,就会变成:

\begin{bmatrix} \blue{18} & \red{19} \\ \green{18} & \purple{13}\end{bmatrix}

这恰恰与合并操作做的是相同的。因此,我们无需真的去删除偶数行和偶数列,仅仅需要通过这种方式我们就可以自然地完成合并操作。

而至于转置操作,我们可以根据题目含义,交换矩阵中的行和列,进行输出即可。

本题的坑点有两个:

详细的代码请参考视频题解。