首页 > 其他分享 >PAT Basic 1097. 矩阵行平移

PAT Basic 1097. 矩阵行平移

时间:2023-04-15 14:35:29浏览次数:38  
标签:平移 1097 PAT int delta 矩阵 99 pMat Basic

PAT Basic 1097. 矩阵行平移

1. 题目描述:

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

2. 输入格式:

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

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

3. 输出格式:

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

4. 输入样例:

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

5. 输出样例:

529 481 479 263 417 342 343

样例解读

需要平移的是第 1、3、5、7 行。给定 \(k=2\),应该将这三列顺次整体向右平移 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

6. 性能要求:

Code Size Limit
16 KB
Time Limit
400 ms
Memory Limit
64 MB

思路:

回血题,考察基础IO,按照题意编写即可。

My Code:

#include <stdio.h>
#include <stdlib.h> // malloc header

int main(void)
{
    int n,k,x;
    int delta=0;
    
    scanf("%d%d%d", &n, &k, &x);
    int (*pMat)[n] = (int (*)[n])malloc(sizeof(int) * n * n); // allocate heap memory, pMat is a array pointer
    for(int i=0; i<n; ++i)
    {
        for(int j=0; j<n; ++j)
        {
            scanf("%d", &pMat[i][j]);
            //printf("%d ", pMat[i][j]);
        }
        //printf("\n");
    }
    
    delta = 1;
    for(int i=0; i<n; i+=2)
    {
        for(int j=n-1; j>=delta; --j)
        {
            pMat[i][j] = pMat[i][j-delta];
        }
        for(int j=0; j<delta; ++j)
        {
            pMat[i][j] = x;
        }
        ++delta;
        if(delta > k) delta = 1;
    }
    
    for(int j=0; j<n; ++j)
    {
        int tempSum = 0;
        for(int i=0; i<n; ++i)
        {
            tempSum += pMat[i][j];
        }
        if(!j)
            printf("%d", tempSum);
        else
            printf(" %d", tempSum);
    }
    printf("\n");
    
    free(pMat); // release heap memory
    return 0;
}

标签:平移,1097,PAT,int,delta,矩阵,99,pMat,Basic
From: https://www.cnblogs.com/tacticKing/p/17321082.html

相关文章

  • PAT Basic 1096. 大美数
    PATBasic1096.大美数1.题目描述:若正整数 \(N\) 可以整除它的4个不同正因数之和,则称这样的正整数为“大美数”。本题就要求你判断任一给定的正整数是否是“大美数”。2.输入格式:输入在第一行中给出正整数 \(K\)(\(≤10\)),随后一行给出 \(K\) 个待检测的、不超过 \(1......
  • 二进制patch工具xdelta的使用方法
     Xdelta是一个二进制的diff工具[同时又兼具了patch功能],diff和patch是Unix世界里很有用的一对工具:我们通常将它们结合起来实现生成补丁,应用补丁的目的。如果要处理的不是文本文件,是二进制文件,我们可以使用一个专门用来处理二进制文件的工具–xdelta。      Xdelta......
  • Getting Started / Basic Structures
    有序点云类似于图像,数据被分成行和列,其来源是立体相机或则TOF相机。其优点是最近邻操作的效率要高得多,从而加快了计算速度,降低了PCL中某些算法的成本。无序点云无序点云的width是点云的总数,height为1判断是无序点云还是有序点云的函数是isOrganized()......
  • TypeScript 报错:Type '({ filename: string; createTime: string; filePath: string;
    问题:因为TypeScript不支持直接给一个接口类型的变量赋一个未知的值。如consta:A={ name:'s'};你需要给这样的对象或数组值使用as指定一个类型。正确写法:consta:A={ name:'s'}asA;数组写法一样:consta:A[]=[ { name:'s' }]asA[];使用as将一......
  • UVA 12295 Optimal Symmetric Paths 最短路求方案数
    题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=23587题意:给一个n*n的矩阵,每个方格中有一个数字,从左上角走到右下角,且路径必须关于副对角线对称,求使路线上数字和最小的方案数思路:既然要关于副对角线对称,那么可以把关于副对角线对称的方格的值加到一起去,这样就......
  • pod中使用hostpath 持久化日志
    1、kubernetes日志持久化在Kubernetes中,可以使用各种不同的方式来持久化Pod中的日志。以下是一些常见的方法:使用HostPath:如上一个回答所示,可以使用HostPath来将Pod中的日志持久化到宿主机上。这种方法简单易用,但需要注意安全问题。使用本地存储卷:可以使用本地存储......
  • PAT Basic 1095. 解码PAT准考证
    PATBasic1095.解码PAT准考证1.题目描述:PAT准考证号由4部分组成:第1位是级别,即T代表顶级;A代表甲级;B代表乙级;第2~4位是考场编号,范围从101到999;第5~10位是考试日期,格式为年、月、日顺次各占2位;最后11~13位是考生编号,范围从000到999。现给定一系列......
  • re.findall()用法详解-返回string中所有与pattern相匹配的全部字串
    re.findall():函数返回包含所有匹配项的列表。返回string中所有与pattern相匹配的全部字串,返回形式为数组。  示例代码1:【打印所有的匹配项】   importre       s="Longlivethepeople'sRepublicofChina"   ret=re.findall('h',s)       ......
  • 3.2 Go语言从入门到精通:包管理工具之GOPATH
    当我们真正用Go去做项目,或者阅读Go项目(如,Go实现的开源项目)时,不可避免的会遇到包依赖问题,一些包管理方式总是很难区分、选择。Go的包管理与Java的Maven依赖管理不太一样,起初Go的包管理方式经常会被人吐槽,但随之Go版本的升级也出现了不同的包管理方式,以满足不同的需求。今天,我们......
  • Navicat常见错误怎么处理(Rsa Public Key not Find、Generate First a serial、No All
    一:下载一键提取软件提取码:rtce1.Navicat数据库管理工具:NavicatDBeaver数据库管理工具:可以代替Navicat2.NavicatKeygenPatch:激活工具二:安装激活1.安装Navicat:直接下一步即可安装NavicatKeygenPatch:安装好后即可打开使用2.断网、关闭杀毒软件和本地防火墙3.......