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

通辽网站开发上海搜索seo

通辽网站开发,上海搜索seo,中国建设银行股份有限公司,沈阳做网站优化的公司哪家好第34次认证第一题——矩阵重塑(其一) 官网链接 时间限制: 1.0 秒 空间限制: 512 MiB 相关文件: 题目目录(样例文件) 题目背景 矩阵(二维)的重塑(reshap…

第34次认证第一题——矩阵重塑(其一) 

官网链接

时间限制: 1.0 秒

空间限制: 512 MiB

相关文件: 题目目录(样例文件)

题目背景

矩阵(二维)的重塑(reshape)操作是指改变矩阵的行数和列数,同时保持矩阵中元素的总数不变。

题目描述

矩阵的重塑操作可以具体定义为以下步骤:

设原矩阵为 𝑀M,其维度为 n×m,即有 n 行和 m 列。新矩阵为 M′,其维度为 p×q。重塑操作要满足 n×m=p×q,这保证了元素的总数不变。

  1. 线性化原矩阵:按照行优先的顺序,将原矩阵 M 的元素转换成一个长度为 n×m 的一维数组 A。这意味着你先读取 M 的第 0 行元素,然后是第 1 行,依此类推,直到最后一行。

  2. 填充新矩阵:使用一维数组 A 中的元素按照行优先的顺序填充新矩阵 M′。首先填充 M′ 的第 0 行,直到该行有 q 个元素,然后继续填充第 1 行,直到所有 p 行都被填满。

给定原矩阵中的一个元素的位置 (i,j)(0≤i<n 且 0≤j<m),我们可以找到这个元素在被线性化后的一维数组 A 中的位置 k(0≤k<n×m),然后确定它在新矩阵 M′ 中的位置 (i′,j′)(0≤i′<p 且 0≤j<q)。它们之间满足如下数学关系:i×m+j=k=i′×q+j′

给定 n×m 的矩阵 𝑀M 和目标形状 p、q,试将 M 重塑为 p×q 的矩阵 M′。

输入格式

从标准输入读入数据。

输入共 n+1 行。

输入的第一行包含四个正整数 n、m 和 p、q。

接下来依次输入原矩阵 M 的第 0 到第 n−1 行,每行包含 m 个整数,按列下标从 0 到 m−1 的顺序依次给出。

输出格式

输出到标准输出。

输出共 p 行,每行 q 个整数,表示重塑后的矩阵 M′。输出格式与输入相同,即依次输出 M′ 的第 0 行到第 p−1 行;行内按列下标从 0 到 q−1 的顺序输出,且两个整数间仅用一个空格分隔。

样例1输入

2 3 3 2
1 2 3
4 5 6

样例1输出

1 2
3 4
5 6

样例2输入

2 2 1 4
6 6
6 6

样例2输出

6 6 6 6

子任务

全部的测试数据满足:

  • n、m 和 p、q 均为正整数且 n×m=p×q≤104;

  • 输入矩阵中每个元素的绝对值不超过 1000。

提示

评测环境仅提供各语言的标准库,特别地,不提供任何线性代数库(如 numpypytorch 等)。

语言和编译选项

#名称编译器额外参数代码长度限制
0g++g++-O2 -DONLINE_JUDGE65536 B
1gccgcc-O2 -DONLINE_JUDGE65536 B
2javajavac65536 B
3python3python365536 B

参考题解

#include<iostream>
#include<vector>
#include<cstring>
using namespace std;int main(){int row1, col1, row2, col2;cin >> row1 >> col1 >> row2 >> col2;int data[row1 * col1];memset(data, 0, sizeof(data));for(int i = 0; i < row1 * col1; i++){cin >> data[i];}
//	int result[row2][col2];----------不需要用数组存结果,直接输出就好了
/*-----!!还可以进一步优化空间效率,不需要将数据读入数组,直接边读入边输出即可(不过这个是对于考试来说,自己调试的话不太方便看结果) for(int i = 0; i < row2; i++){for(int j = 0; j < col2; j++){int value;cin >> value;cout << value << " ";}cout << endl;}-----------------------*/	 
//	memset(result, 0, sizeof(result));int index = 0;for(int i = 0; i < row2; i++){for(int j = 0; j < col2; j++){cout << data[index] << " ";index++;}cout << endl;}return 0;
}

优化后

完成矩阵重塑(其二)后受到的优化启发

矩阵重塑(其二)​​​​​​​

#include <iostream>
#include <vector>using namespace std;int main () {int n1, m1, n2, m2;
//	cin >> n1 >> m1 >> n2 >> m2;scanf("%d%d%d%d", &n1, &m1, &n2, &m2); //不能用%D,没有定义这种行为,虽然不会报错,但是赋值并未成功 vector<int> data (n1 * m1);for (int i = 0; i < n1 * m1; i++) {
//		cin >> data[i];scanf("%d", &data[i]);}for (int i = 0; i < n2; i++) {for (int j = 0; j < m2; j++) {
//			cout << data [i * m2 + j] << " ";printf("%d ", data [i * m2 + j]);}
//		cout << "\n";printf("\n");}return 0;
}

小结

本题较为简单,用时10分钟左右,不过不知道还有没有小坑,重点是无需存储直接输出的思想,可以提高效率。

一般来说第一题较简单,可以先看输入输出,看不明白再去看题目。

http://www.khdw.cn/news/23187.html

相关文章:

  • 机械行业做网站西安疫情最新通知
  • 电脑做网站服务器WIN7 买个域名网站设计软件
  • 青岛微信网站建设自己在家怎么做跨境电商
  • 丽江网站开发百度投诉中心人工电话
  • 湖南做网站 n磐石网络企业网站源码
  • python前端开发需要学哪些东西湖北百度seo排名
  • 图表 wordpressseo推广优化的方法
  • 做网站的预算表郑州seo顾问培训
  • 网站后台有些不显示网络营销网站推广方案
  • 阿克苏网站设计搜索引擎营销ppt
  • 做3ds磁铁卡网站郑州网络营销哪家正规
  • 营销网站域名设计google关键词推广
  • 人工智能工程师月薪多少网站优化服务
  • 最好的完全免费开源企业网站台州网站seo
  • 宝鸡做网站公司电话宁波建站模板系统
  • 新手如何自己做网站app一键优化下载
  • 网站切图是什么意思怎么创建网站
  • 建筑业服务平台福州seo排名公司
  • 网站模板 首饰预定网络外包运营公司
  • 网站404怎么做视频教程刷关键词优化排名
  • 扣扣网页版手机登录入口seo关键词排名公司
  • 西安网站建设定制沈阳网站seo排名公司
  • php微网站开发百度收录入口提交查询
  • 网站可以自己做服务器么百度主页
  • c 开发网站开发google play官网
  • 重庆网站建设注意事项免费网站java源码大全
  • 在网站上做视频培训系统多少钱扬州seo优化
  • 天天传媒有限公司网站seo还能赚钱吗
  • 电商设计网站手机百度seo怎么优化
  • 零售户电商网站订货网址seo的宗旨是什么