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

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;
}

 

 


http://www.kler.cn/a/599906.html

相关文章:

  • 『 C++ 』原生字符串:让字符串处理更轻松
  • LabVIEW液压振动锤控制系统
  • Pytest的参数化测试
  • 23 种设计模式中的模板模式
  • 穿越之程序员周树人的狂人日记Part3__人机共生纪元
  • 淘宝API关键词接口详解(实战案例)
  • Android 13组合键截屏功能的彻底移除实战
  • IDI_APPLICATION 与 IDC_ARROW资源存放在工程的哪个路径?
  • 基于简单神经网络的线性回归
  • F#语言的游戏优化
  • Stable Diffusion教程:图生图_stable diffusion 图生图
  • vue 事件修饰符
  • 【cuda学习日记】8.2 GPU加速库 --cuBLAS
  • 初始OpenCV
  • C#中值类型与引用类型是直观使用示例
  • 使用腾讯云大模型知识引擎×DeepSeek打造自己的私人家教
  • leetcode 2255. 统计是给定字符串前缀的字符串数目 简单
  • requestAnimationFrame和requestIdleCallback分别是什么,是用在什么场景下
  • 【Dive Into Stable Diffusion v3.5】2:Stable Diffusion v3.5原理介绍
  • 《基于Python+web的家具消费数据的数据分析与应用》开题报告