指针-矩阵变换

简介: 指针-矩阵变换

任务描述

给定一个矩阵,请编程将其按照以下约定的操作方式变换后输出。

相关知识

参考之前的关卡。

编程要求

根据提示,在右侧编辑器的Begin-End区域内补充代码。

测试说明

输入:第一行三个正整数 n,m 和 q 分别表示矩阵 A 的行数、列数和操作数量;接下来 n 行,每行 m 个数,第 i 行第 j 个数为Ai,j(0≤Ai,j≤105);接下来 q 行,每行输入形式为以下三种之一(输入时以数字 1,2,3 分别代表每种操作): (1)x l r 表示把第 x 行的第 l 到第 r 个数翻转; (2)y l r 表示把第 y 列的第 l 到第 r 个数翻转; (3)x1,y1,x2,y2,x3,y3,将矩阵 A(x1,y1)(x2,y2)(x3,y3)这三个位置上的数按从小到大排序和变换位置。设这三个位置上的数从小到大排序后为a,b,c,a≤b≤c,这个操作完成后,应有 Ax1,y1=aAx2,y2=bAx3,y3=c

其中1≤n,m,q≤103n×m≥31≤x,xi≤n1≤y,yi≤m。保证操作 1 有1≤l≤r≤m, 保证操作 2 有 1≤l≤r≤n,保证操作 3 的三个位置互不相同。

输出:输出 n 行,每行 m 个数表示最终 q 次操作结束后的矩阵。

例如测试集 1 的输入是: 2 2 31 23 41 1 1 22 2 1 23 1 1 1 2 2 1 程序运行结果为: 2 34 1

对一个 2 行 2 列的矩阵 [1324]进行 3 步操作。第一步操作将第 1 行的第 1-2 个数翻转,则输入样例变为:[2314];第二步操作将第2列第1~2个数翻转,则输入样例变为:[2341];第三步操作三个位置上的数为 2,4,3。从小到大排序后为 2,3,4。所以操作之后A1,1=2, A1,2=3, A2,1=4, l, 输出[2431]


开始你的任务吧,祝你成功!


相关文章
|
2月前
|
存储 人工智能 算法
【C/C++ 数据结构 】三角矩阵的基本了解
【C/C++ 数据结构 】三角矩阵的基本了解
23 0
|
10月前
|
C语言
C语言-利用指针实现3*4矩置阵的转置
C语言-利用指针实现3*4矩置阵的转置
210 0
|
10月前
指针-求凸多边面积
指针-求凸多边面积
|
11月前
|
Java
判断顶点凹凸性、判断多边形的凹凸性、填充凹坑将凹多边形处理为凸多边形【java实现+原理讲解】
判断顶点凹凸性、判断多边形的凹凸性、填充凹坑将凹多边形处理为凸多边形【java实现+原理讲解】
158 0
判断顶点凹凸性、判断多边形的凹凸性、填充凹坑将凹多边形处理为凸多边形【java实现+原理讲解】
|
11月前
射线法——判断一个点是否在多边形内部(适用于凸多边形和凹多边形)【关键原理解释+文字伪代码】
射线法——判断一个点是否在多边形内部(适用于凸多边形和凹多边形)【关键原理解释+文字伪代码】
264 0
|
机器学习/深度学习
N*N矩阵的旋转 不开辟新空间
N*N矩阵的旋转 不开辟新空间
|
存储 图形学 异构计算
Unity3D 法线转换&切线空间
Unity3D 法线转换&切线空间
459 0
Unity3D 法线转换&切线空间
|
C语言 开发者
二维指针|学习笔记
快速学习二维指针
【OpenGL】二十一、OpenGL 矩阵压栈与出栈 ( 不同类型矩阵变换先后顺序 | 渲染前不设置单位阵 | 压栈出栈原理分析 | 代码示例 )(一)
【OpenGL】二十一、OpenGL 矩阵压栈与出栈 ( 不同类型矩阵变换先后顺序 | 渲染前不设置单位阵 | 压栈出栈原理分析 | 代码示例 )(一)
127 0
【OpenGL】二十一、OpenGL 矩阵压栈与出栈 ( 不同类型矩阵变换先后顺序 | 渲染前不设置单位阵 | 压栈出栈原理分析 | 代码示例 )(一)