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

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.lryc.cn/news/374529.html

相关文章:

  • Aigtek高压放大器在柔性爬行机器人驱动性能研究中的应用
  • Postman下发流表至Opendaylight
  • C语言王国——数组的旋转(轮转数组)三种解法
  • MySQL中CAST和CONVERT函数都用于数据类型转换
  • 速盾:cdn影响seo吗?
  • 期末算法复习
  • 可穿戴设备:苹果“吃老底”、华为“忙复苏”、小米“再扩容”
  • AI数据分析:集中度分析和离散度分析
  • redis的分布式session和本地的session有啥区别
  • SSH概念、用途、详细使用方法
  • 关于电脑文件的规划思考
  • DVWA - Brute Force
  • 安卓手机文件找回方法汇总,3个技巧,不再焦虑
  • {}初始化
  • 小程序外卖开发中的关键技术与实现方法
  • 大数据平台之运维管理工具
  • [vue3]组件通信
  • 【react小项目】bmi-calculator
  • python判断一个数是不是偶数
  • Apipost模拟HTTP客户端
  • uniapp 调用手机上安装的app (高德地图 百度地图 Apple地图 谷歌地图)
  • 如果供应商不能按时交货怎么办?
  • 【Linux应用】Linux系统的设备管理——Udev
  • 超实用!给独立开发者福音的一站式应用开发工具!
  • 华为 HarmonyOS 中国市场份额一季度超越苹果 iOS
  • 【乐吾乐2D可视化组态编辑器】导航
  • vue 之 vuex
  • 【代码随想录】【算法训练营】【第36天】[452]用最少数量的箭引爆气球 [435]无重叠区间 [763]划分字母区间
  • 【ElasticSearch】windows server 2019安装ES8.9.1 + kibana8.9.1 + IK分词器
  • 前端面试题(一)答案版