矩阵列平移

给定一个 n×n 的整数矩阵。对任一给定的正整数 k<n,我们将矩阵的偶数列的元素整体向下依次平移 1、……、k、1、……、k、…… 个位置,平移空出的位置用整数 x 补。你需要计算出结果矩阵的每一行元素的和。

输入格式:
输入第一行给出 3 个正整数:n(<100)、k(<n)、x(<100),分别如题面所述。

接下来 n 行,每行给出 n 个不超过 100 的正整数,为矩阵元素的值。数字间以空格分隔。

输出格式:

在一行中输出平移后第 1 到 n 行元素的和。数字间以 1 个空格分隔,行首尾不得有多余空格。

输入样例:

7 2 99
11 87 23 67 20 75 89
37 94 27 91 63 50 11
44 38 50 26 40 26 24
73 85 63 28 62 18 68
15 83 27 97 88 25 43
23 78 98 20 30 81 99
77 36 48 59 25 34 22

输出样例:

440 399 369 421 302 386 428

样例解读

需要平移的是第 2、4、6 列。给定 k=2,应该将这三列顺次整体向下平移 1、2、1 位(如果有更多列,就应该按照 1、2、1、2 …… 这个规律顺次向下平移),顶端的空位用 99 来填充。平移后的矩阵变成:

11 99 23 99 20 99 89
37 87 27 99 63 75 11
44 94 50 67 40 50 24
73 38 63 91 62 26 68
15 85 27 26 88 18 43
23 83 98 28 30 25 99
77 78 48 97 25 81 22

C++代码:

#include <cstdio>
int main() {int a[100] = {0}, n, k, x;     /*数组a用于存储每一行的和,初始化为0*/int num, key;  /*key是当前需要下移的行数*/scanf("%d%d%d",&n,&k,&x);for(int i = 0; i < n; i++) {key = 1; /*每行起始将key重置为1*/for(int j = 0; j < n; j++) {scanf("%d",&num);if((j+1)%2 == 0) {  /*如果是偶数行*/if(key > k)    key = 1;   /*key如果已经超过了最大下移行数k,则重置为1*/if(i < key)a[i] += x;    /*当前数字被下移了,在该行的和中加入x*/if(i+key < n)a[i+key] += num;   /*被下移的数加入到下移后所在行的和中*/++key;continue;}a[i] += num;       /*奇数列直接加进当前行的和中*/}}for(int i = 0; i < n-1; i++)printf("%d ",a[i]);printf("%d\n",a[n-1]);return 0;
}

L1-7 矩阵列平移相关推荐

  1. 520 钻石争霸赛 7-6 矩阵列平移(循环)

    给定一个 n×n 的整数矩阵.对任一给定的正整数 k<n,我们将矩阵的偶数列的元素整体向下依次平移 1.--.k.1.--.k.-- 个位置,平移空出的位置用整数 x 补.你需要计算出结果矩阵的 ...

  2. Bootstrap3 栅格系统之列平移

    列平移 使用 .col-md-offset-* 类,可以将列向右侧平移,* 指定要平移的列数.平移的本质,是为元素增加 * 列的左外边距(margin-left).如,.col-md-offset-4 ...

  3. Bootstrap 列平移/列偏移

    有些时候,我们不希望两个相邻的列紧挨在一起,就可以使用栅格系统的列平移功能.使用 .offset* 类,可以将列向右平移,* 用于指定平移的列数.比如,以下代码中的 .offset2 会导致 .spa ...

  4. 转换矩阵、平移矩阵、旋转矩阵关系以及python实现旋转矩阵、四元数、欧拉角之间转换

    文章目录 1. 转换矩阵.平移矩阵.旋转矩阵之间的关系 2. 缩放变换.平移变换和旋转变换 2. python实现旋转矩阵.四元数.欧拉角互相转化 由于在平时总是或多或少的遇到平移旋转的问题,每次都是 ...

  5. matlab 矩阵列乘系数,matlab 给某一列乘上一个系数

    矩阵M是一个 mxn 的矩阵,现在要给M矩阵的第一列都要乘上10,使其第一列扩大10倍,那肿么做呢? 我第一时间用的是: M(:,1) = M(:,1)*10; //错误的 但是这个错了,结果是不对的 ...

  6. Bootstrap 列平移

    跟固定网格中一样,只需在平移的列中添加 .offset* 类即可让列向右平移.如: <div class="row-fluid">   <div class=&q ...

  7. python矩阵元素排序,使用Python基于列表值对矩阵列进行排序

    我有一个N x 100numpy矩阵,其中包含我想要排序的任何类型的数字.在 为了使其更直观,我现在将使用虚拟值填充它:import numpy as np X = np.array( [[float ...

  8. Matlab Tricks(七)—— 矩阵列/列的归一化/单位化(normalize)

    对矩阵的每一列进行归一化(单位化) D = randn(20, 50);% 标准正态分布 D = D*diag(1./sqrt(sum(D.*D)));% 右乘一个对角矩阵是对列进行缩放 同理,如果对 ...

  9. matlab 矩阵 列 逆序,matlab对矩阵/向量的常用操作(拼接矩阵、向量逆序、改变矩阵形状、求行阶梯形矩阵、提取矩阵的一部分等)...

    几乎所有变量在matlab中都可以视为矩阵(1 x 1元素,1 x n向量,m x n矩阵等),matlab中对矩阵/向量的操作非常多,个人认为对矩阵的操作是体现matlab功底的地方:灵活搭配使用这 ...

最新文章

  1. javascript的全局变量
  2. 前端代码规范网址导航(总结)
  3. 判断一个单链表中是否存在环
  4. AlexNet层级分析(涉及:卷积核操作下下层网络特征图size计算;对通道和卷积核尺寸及通道前层feature map和卷积核的运算关系的解释)
  5. 九章算术卷第七 盈不足
  6. 处理异常:org.springframework.beans.factory.BeanNotOfRequiredTypeException
  7. PageRank算法简单实现
  8. java程序员推荐app_Java程序员面试大全app
  9. 全局钩子,解决命名烦恼!——代码翻译小工具。
  10. 人脸检测实战终极:使用 OpenCV 和 Python 进行人脸对齐
  11. 微信壁纸头像小程序(附源码)
  12. 0302、DNS服务器、多区域的DNS服务器、DNS主从架构、DNS主从数据同步、特殊解析、缓存DNS
  13. 搜狗输入法 linux 怎么打开,ubuntu 15.10安装搜狗输入法不能打开
  14. 现代战争——僵尸网络的历史 上篇
  15. Python从RGBD数据进行3D场景重建
  16. 使用Pytorch搭建U-Net网络并基于DRIVE数据集训练(语义分割)学习笔记
  17. 微信计算机发展的表征是什么意思,【表征】的意思是什么?【表征】是什么意思?...
  18. python摄像头人脸识别小程序 开门,OpenCV3-Python人脸识别方法—基于摄像头
  19. 如何理解空洞卷积(dilated convolution)
  20. 偏微分方程的基本概念

热门文章

  1. 天然气泄漏报警器工作原理是什么
  2. FTX创办人SBF:区块链并不是炒作,有三大应用场景可大放异彩
  3. 【人体骨骼点】数据集
  4. 步进电机每转步数和步进角关系:每转步数 = 360°/歩进角
  5. 蚂蚁课堂视频笔记思维导图-3期 一、并发编程专题
  6. 1.10HDFS 回收站机制
  7. spring实战学习(一)简介
  8. System.Net.Mail发邮件标题过长出现乱码问题
  9. 三国群英传霸业之王服务器维护,《三国群英传2网络版》掌上助手APP曝光,三国群英传霸业之王...
  10. jspdf与zip.js结合。解决转pdf文件清晰度与文件过大的问题