B3890 [语言月赛 202311] 表格处理 题解
Source & Knowledge
2023 年 11 月语言月赛,由洛谷网校入门计划/基础计划提供。
考察数组的运用。
文字题解
我们分别实现题目中给定的两个操作。
合并操作
观察题目中给定的合并操作的描述,我们会发现以下的特征:我们可以将原表格划分成若干
我们用四种不同的颜色区分出了四个小表格。如果每个表格仅保留最左上的位置,其他的数加入到小表格最左上的值的话,就会变成:
这恰恰与合并操作做的是相同的。因此,我们无需真的去删除偶数行和偶数列,仅仅需要通过这种方式我们就可以自然地完成合并操作。
而至于转置操作,我们可以根据题目含义,交换矩阵中的行和列,进行输出即可。
本题的坑点有两个:
-
题目中给定的变量是
n 和m ,但是实际上表格A 是2n 行2n 列的,因此数组的每个维度要开到n 和m 限制的两倍大小,才能保证数组不越界; -
题目中的样例,给定的情况都是
n=m 的,如果转置操作写的有问题(例如说,输出不是m 行n 列的表格A^T ,而不小心打成了n 行n 列),那么可能无法检查出错误。
详细的代码请参考视频题解。