#B1. 二维数组题解
二维数组题解
A1119 矩阵交换行
题意
5 x 5矩阵,交换第m行和第n行。
题解
方法1:创建做中介,交换第m行和第n行。
方法2:不交换,直接输出,先输出第n行,再输出第m行。
A1120 同行列对角线的格
题意
n x n矩阵,输出与同行、同列和同对角线的位置。
题解
- 同一行:
- 同一列:
- 左上到右下对角线:
- 左下到右上对角线:
如果是判断和(x,y)是否在同一对角线,行相减的绝对值等于相减的绝对值,即。
A1121 计算矩阵边缘元素之和
题意
m x n矩阵,边缘元素之和。
题解
方法1:第一行+最后一行+第一列+最后一列-四个角
方法2:遍历数组,判断是否为边缘元素,是则相加。
A1122 计算鞍点
题意
5 x 5矩阵,输出鞍点,鞍点即该元素是所在行的最大值,并且是所在列的最小值。
题解
遍历数组,找出该行最大值,再判断是否为该列最小值。
A1124 矩阵加法
题意
n x m矩阵A和B,求A + B。
题解
对应相加
A1125 矩阵乘法
题意
n x m矩阵A和B,求A x B。
题解
三重循环求矩阵乘法
A1126 矩阵转置
题意
n x m矩阵,输出转置矩阵,即交换横纵坐标。
题解
方法1:,输出b矩阵。
方法2:。
A1127 图像旋转
题意
n x m矩阵,顺时针旋转90度后输出。
题解
方法1:。
方法2:
A1128 图像模糊处理
题意
n x m矩阵,四周元素不变,其他元素改为该元素与上下左右相邻四个元素的均值,四舍五入。
题解
非四周元素:
$b[i][j]=round((a[i-1][j]+a[i+1][j]+a[i][j+1]+a[i][j-1]+a[i][j])/5.0);$
四周元素:
P1789【Mc生存】插火把
题意
n x n矩阵,m个火把,k个萤石。火把与萤石有对应照亮范围,统计矩阵中未被照亮的位置之和。
题解
方法1:如果是火把,坐标为,则把的点都打上标记;如果是萤石,坐标为,把且的点打上标记。最后遍历数组,统计未标记的点总数。
方法2:上下左右四个相邻的点可以表示为$(x+dx[k],y+dy[k]),dx= \left\{ 0,0,-1,1 \right\},dy=\left\{ -1,1,0,0 \right\},k=0,1,2,3$。同理可写出火把与萤石的所有可照亮位置的偏移量。打上标记,最后统计未标记的点总数。
P1319 压缩技术
题意
给压缩码,还原矩阵
题解
模拟题意
P1320 压缩技术(续集版)
题意
给矩阵,求压缩码
题解
模拟压缩过程
P365 蛇形填数
题意
n x n矩阵,蛇形填入1- n x n,总共n x n个数。
n=4
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
题解
按题意模拟,填n x n次。
P366 回形方阵
题意
输入为n,代表回形方阵最外圈数字为n,输出(2n+1) x (2n+1)的矩阵。
题解
方法1:按题意模拟,填入。
方法2:根据离边缘的距离输出。
方法3:全填8,全填7。
该题注意的点:输出用cout << setw(2) << n - pos;因为用cout << n - pos <<" ";无法AC。
P5729 工艺品制作
题意
三维数组,q次删除,每次删除到 位置的数,问剩下多少数。
题解
标记删除的数,统计剩下的数。