当前位置: 首页 > news >正文

PTA 1097-矩阵行平移

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

输入格式:

输入第一行给出 3 个正整数:𝑛(<100)、𝑘(<𝑛)、𝑥(<100)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

Copy

输出样例:

529 481 479 263 417 342 343

Copy

样例解读

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

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

代码:

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main(){
    int n,k,x;
    cin>>n>>k>>x;
    int a[200][200],b[200][200];
    for(int i=0;i<n;++i){
        for(int j=0;j<n;++j){
            cin>>a[i][j];
        }
    } 
    int t=1;//移动个数
    int sum[10050]={0};
        for(int i=0;i<n;++i){
            if(i%2==0){
                int q;
                for(int j=0;j<t;++j){
                    b[i][j]=x;
                    q=j;
                }
                for(int j=0;j<n-t+1;++j){
                    b[i][++q]=a[i][j];
                }
               if(t<k)t++;//增加x个数
               else if(t==k)t=1;//到k个后变为1
            } 
            else{
                for(int j=0;j<n;++j){
                    b[i][j]=a[i][j];
                }
            }
        }
        //  for(int i=0;i<n;++i){
        //      for(int j=0;j<n;++j){
        //          cout<<b[i][j]<<" ";
        //      }cout<<endl;
        //  }
        for(int j=0;j<n;++j){
            for(int i=0;i<n;++i){
                sum[j]+=b[i][j];
            }
        }
        for(int i=0;i<n;++i){
            cout<<sum[i];
            if(i!=n-1)cout<<" ";
        }
return 0;
}

 

 

相关文章:

  • UNIX网络编程笔记:客户/服务器程序示例
  • git,openpnp - 根据安装程序打包名称找到对应的源码版本
  • 大数据从入门到入魔系列————大数据治理技术栈技术选型
  • AI开源项目
  • 2. 商城前端部署
  • 【学习笔记】卷积网络简介及原理探析
  • AtCoder 第398场初级竞赛 A~E题解
  • Python-docx库详解:轻松实现Word文档自动化生成与图片尺寸控制
  • Java单例模式、懒汉模式、饿汉模式和懒加载
  • Linux任务管理与守护进程
  • Qt的内存管理机制
  • 一些SQL优化经验(非添加索引版)
  • ccfcsp3302相似度计算
  • 计算机网络(第三章)
  • VScode页面错误,可以编译C++20版本,但页面显示有错误的解决方案
  • Unity的JSON工具类+LitJson的引入及使用
  • 对象克隆以及BigInteger()方法,与BigDecima()方法的学习
  • 使用CSS3实现炫酷的3D翻转卡片效果
  • Linux信号处理:从“死亡快递“到系统级心跳的奇幻漂流
  • 鸿蒙特效教程10-卡片展开/收起效果
  • 硅料收储挺价“小作文”发酵光伏板块罕见大涨,知情人士:确实在谈
  • 图讯丨习近平出席中国-拉美和加勒比国家共同体论坛第四届部长级会议开幕式
  • 时隔4年多,这一次普京和泽连斯基能见面吗?
  • 王毅人民日报撰文:共商发展振兴,共建中拉命运共同体
  • 影子调查丨三名“淘金客”殒命雪峰山:千余废弃金矿洞的监管难题
  • 这些网红果蔬正在收割你的钱包,营养师:吃了个寂寞