时间限制: 1.0 秒
空间限制: 512 MiB
矩阵(二维)的重塑(reshape)操作是指改变矩阵的行数和列数,同时保持矩阵中元素的总数不变。
矩阵的重塑操作可以具体定义为以下步骤:
设原矩阵为 M,其维度为 n×m,即有 n 行和 m 列。新矩阵为 M′,其维度为 p×q。重塑操作要满足 n×m=p×q,这保证了元素的总数不变。
给定原矩阵中的一个元素的位置 (i,j)(0≤i 给定 n×m 的矩阵 M 和目标形状 p、q,试将 M 重塑为 p×q 的矩阵 M′。 从标准输入读入数据。 输入共 n+1 行。 输入的第一行包含四个正整数 n、m 和 p、q。 接下来依次输入原矩阵 M 的第 0 到第 n−1 行,每行包含 m 个整数,按列下标从 0 到 m−1 的顺序依次给出。 输出到标准输出。 输出共 p 行,每行 q 个整数,表示重塑后的矩阵 M′。输出格式与输入相同,即依次输出 M′ 的第 0 行到第 p−1 行;行内按列下标从 0 到 q−1 的顺序输出,且两个整数间仅用一个空格分隔。 全部的测试数据满足: 评测环境仅提供各语言的标准库,特别地,不提供任何线性代数库(如 numpy、pytorch 等)。 1、解题步骤拆分: 欢迎大家和我沟通交流(✿◠‿◠)输入格式:
输出格式:
样例1输入:
2 3 3 2
1 2 3
4 5 6
样例1输出:
1 2
3 4
5 6
样例2输入:
2 2 1 4
6 6
6 6
样例2输出:
6 6 6 6
子任务:
提示:
解题思路:
思路一:
① 数据输入:
第一行输入4个整数 n m p q ,n和m代表M矩阵的长和宽,p和q代表重塑矩阵的长和宽。
接下来n行输入 nm 矩阵。
② 数据处理:在输入时直接将 nm 矩阵存储在一维数组中,使用一位数组来进行 p*q 矩阵的重塑。
③ 数据输出:我们只需要在重塑时每行输出 p 个元素,依次输出 q 行则可实现结果的输出。代码实现
代码实现(思路一):
#include