CCF 矩阵重塑

第一题:矩阵重塑(一)

 本题有两种思路

第一种 (不确定是否正确 但是100分)

#include<iostream>
using namespace std;
int main(){int n,m,p,q,i,j;cin>>n>>m>>p>>q;int a[n][m];for(i=0;i<n;i++){for(j=0;j<m;j++){cin>>a[i][j];}}int ans=0;for(i=0;i<n;i++){for(j=0;j<m;j++){ans++;cout<<a[i][j]<<" ";if(ans%q==0){cout<<endl;}}}
} 

第二种 哈希表 一对一对一(找到这两个矩阵之间的关系)

map<int,int>ok;int i,j;for(i=0;i<n;i++){for(j=0;j<m;j++){ok[i*m+j]=ans[i][j];}}for(i=0;i<p;i++){for(j=0;j<q;j++){ans[i][j]=ok[i*q+j]; }}

第二题 矩阵重塑(二)

 这道题他的难点在于矩阵的大小是会随着操作进行改变,所以每次需要进行更新,长和宽,这里建议用vector,因为vector独特的性质,很适合,当时我当时考试的时候就是用 数组做的(因为编译器的原因),第一天题只是作为部分功能穿插在第二题中

代码如下

#include<iostream>
#include<map>
#include<vector>
using namespace std;
int ans[10000][10000];
int n,m;
void slove1(int p,int q){map<int,int>ok;int i,j;for(i=0;i<n;i++){for(j=0;j<m;j++){ok[i*m+j]=ans[i][j];}}for(i=0;i<p;i++){for(j=0;j<q;j++){ans[i][j]=ok[i*q+j]; }}n=p;m=q;
}
void slove2(){int a[m][n];int i,j;for(i=0;i<m;i++){for(j=0;j<n;j++){a[i][j]=ans[j][i];}}for(i=0;i<m;i++){for(j=0;j<n;j++){ans[i][j]=a[i][j];}}int tmp=n;n=m;m=tmp;
} 
int main(){int t,i,j;cin>>n>>m>>t;for(i=0;i<n;i++){for(j=0;j<m;j++){cin>>ans[i][j];}}int op,p,q;while(t--){cin>>op>>p>>q;if(op==1){slove1(p,q);}if(op==2){slove2();}if(op==3){cout<<ans[p][q]<<endl;}}
} 

可以把slove1()修改成如下

void slove1(int p,int q){int i,j;int nums[n][m];for(i=0;i<n;i++){for(j=0;j<m;j++){nums[i][j]=ans[i][j];}}for(i=0;i<n*m;i++){ans[i/p][i%q]=nums[i/n][i%n];}n=p;m=q;
}

可以参考leetcode

以上只能得80分

566. 重塑矩阵 - 力扣(LeetCode)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/28742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

现代易货:创新交易模式引领物品交换新潮流

在繁华的现代经济浪潮中&#xff0c;物品交换的文化逐渐崭露头角&#xff0c;引领了一种新颖的交易潮流——现代易货交易模式。这种模式不仅是对古老“以物易物”交易的现代化诠释&#xff0c;更是对物品价值多元化和交换方式创新的深入探索。那么&#xff0c;现代易货交易究竟…

员工入职平台ChiefOnboarding

什么是 ChiefOnboarding &#xff1f; ChiefOnboarding 是一个免费开源的员工入职平台。您可以通过 Slack 或门户网站让新员工入职。 安装 在群晖上以 Docker 方式安装。 在注册表中搜索 chiefonboarding &#xff0c;选择第一个 chiefonboarding/chiefonboarding&#xff0c…

R语言dplyr统计指定列里面种类个数和比例

输入数据框&#xff1a;dfuorf&#xff0c;Type列有uORF和overlpaORF两种类型 dfuorf1 <- dfuorf %>%group_by(Type) %>% summarise(Countn()) %>% mutate(percentCount/sum(Count)) %>% mutate(percent1 (paste0(round((Count/sum(Count)), 2)*100,"%&…

示例:WPF中使用DecodePixelHeight和DecodePixelWidth优化Image性能

一、目的&#xff1a;在使用Image控件时&#xff0c;如果图片太大或者图片数量过多时加载出来的程序内存会非常的大&#xff0c;但一般图片多时我们只要预览缩略图就可以&#xff0c;查看时再显示原图&#xff0c;这个时候需要通过通过设置BitmapImage的DecodePixelHeight和Dec…

linux下写shell脚本时-gt或-lt是什么意思?

Linux下有一些判断比较的逻辑&#xff0c;下面解释一下相关关键字的意思&#xff1a; -gt是大于的意思。 -eq是等于的意思。 -ne是不等于的意思。 -ge是大于等于的意思。 -lt是小于的意思。 -le是小于等于的意思。 下面一段代码&#xff1a; hourdate %Hecho $hourif [ …

YOLOv5目标检测——基于YOLOv5的吊车安全监测

移动式起重机是建筑施工中使用的重要设备。 遵守正确的操作程序对于防止事故很重要。 然而&#xff0c;其中存在人为错误的因素。 这里我将举一个例子来说明计算机视觉&#xff08;CV&#xff09;如何帮助解决这个问题。 1、移动式起重机操作的安全问题 为简单起见&#xff0…

MySQL 离线安装客户端

1. 官方网址下载对应架构的安装包。 比如我的是centOs 7 x64。则需下载如图所示的安装包。 2. 安装 使用如下命令依次安装 devel , client-plugins, client. rpm -ivh mysql-community-*.x86_64.rpm --nodeps --force 在Linux系统中&#xff0c;rpm是一个强大的包管理工具&…

Python基础教程(二十四):日期和时间

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

系统架构设计师【论文-2017年 试题2】: 论软件架构风格(包括写作要点和经典范文)

题目&#xff1a;论软件架构风格 &#xff08;2017年 试题2&#xff09; 软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格 定义一个系统家族&#xff0c;即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和 连接件类型&#xff…

解决Flutter应用程序的兼容性问题

哈喽呀&#xff0c;大家好呀&#xff0c;淼淼又来和大家见面啦&#xff0c;Flutter作为一个跨平台的移动应用开发框架&#xff0c;极大地简化了开发者同时在Android和iOS平台上构建应用的难度。然而&#xff0c;由于不同设备、操作系统版本以及Flutter框架本身的变化&#xff0…

关于valueOf和parseInt的记忆

记住 valueOf 和 parseInt 这些方法所属的类和它们的用法确实可能有些混乱。以下是一些策略和记忆技巧&#xff0c;帮助你更好地记住这些方法&#xff1a; 1. 理解常见的类和方法 了解一些常见的类及其方法所属的类别和用途。 String类: String.valueOf 方法将不同类型的值转…

[C语言]条件编译

C语言条件编译用途&#xff1a; 1.判断宏是否被定义&#xff1b; 2.判断宏是否未被定义&#xff1b; 3.选择性执行 #include <stdio.h>#define DEBUG 10 #define HIGH 2int main() {int value 10;//1.用于判断宏是否被定义 #ifdef DEBUGprintf("1.DEBUG define…

springboot弘德图书馆座位预约管理系统-计算机毕业设计源码07028

摘 要 在面对当今培育人才计划的压力&#xff0c;人们需要汲取更多的不同领域的知识来不断扩充自己的知识层面&#xff0c;因此他们对学习的欲望不断扩大&#xff0c;图书馆作为我们的学习宝地&#xff0c;有着不可替代的地位。但是在信息化时代&#xff0c;传统模式下的图书馆…

nginx入门与实践

当谈到NGINX的入门与实践时&#xff0c;理解基本概念并能够应用实际场景非常重要。NGINX是一个高性能的HTTP和反向代理服务器&#xff0c;也可用作负载均衡器和HTTP缓存。以下是一些入门级别的NGINX实践和代码示例&#xff0c;帮助你开始学习和使用它。 1. 安装和基本配置 安…

栅格数据实现最优参数地理探测器(OPGD)详细教程!(上)

数据准备 要探寻一堆因素对因变量的影响,首先你要确定要用哪些自变量来影响哪个因变量 想好了之后 你需要到相应的网站去下载你的研究区的自变量和因变量数据的栅格数据(可以是离散的,也可以是连续的) 后续操作是到Arcgis里对你的数据处理一下 由于不是教程的重点,这里就…

uniApp @input事件更改输入框值,值改变了但是页面没更新新的值

<uni-easyinputtype"text"trim"all":inputBorder"false"v-model"customFormData.completePercent"input"(val) > completeOnInput(val)"placeholder"请输入" /> function completeOnInput(val) {let num…

less-loader的less转成CSS的底层原理

在现代Web开发中&#xff0c;CSS预处理器如LESS极大地提高了编写样式的效率和灵活性。而less-loader作为webpack的一个加载器&#xff0c;用于将LESS文件转换为CSS文件。本文将深入探讨less-loader如何工作&#xff0c;从解析LESS文件到生成最终的CSS文件的底层原理。 工作流程…

Go 基础丨切片 slice

1. 底层 runtime/slice.go type slice struct {array unsafe.Pointer // 指向底层数组len int // 切片元素数量cap int // 底层数组容量 }reflect/value.go type SliceHeader struct {Data uintptrLen intCap int }2. 创建 根据数组创建 s : arr[0:3]字面…

低功耗蓝牙ble开发(三)——基于bluez5接口的ble应用示例

5、应用实例 一般 BLE&#xff08;低功耗蓝牙&#xff09;设备的连接流程可以分为以下几个步骤&#xff1a; 启动设备发现&#xff1a;通过 StartDiscovery 方法开始扫描周围的 BLE 设备。监听设备发现信号&#xff1a;监听 InterfacesAdded 信号&#xff0c;以获取发现的设备…

【Linux】进程_7

文章目录 五、进程8. 进程地址空间9. 进程终止10. 进程等待 未完待续 五、进程 8. 进程地址空间 我们上节知道了进程地址空间是根据页表来使虚拟地址转换成内存中的物理地址&#xff0c;那这种 地址空间 页表 的机制有什么好处呢&#xff1f;①这种机制可以将物理内存从无序…