博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图像旋转
阅读量:6417 次
发布时间:2019-06-23

本文共 974 字,大约阅读时间需要 3 分钟。

试题来源为网络资源

试题编号:    201503-1
试题名称:    图像旋转
时间限制:    5.0s
内存限制:    256.0MB
问题描述:    
  旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。
  计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。
输入格式
  输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。
  接下来n行每行包含m个整数,表示输入的图像。
输出格式
  输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。
样例输入
2 3
1 5 3
3 2 4
样例输出
3 4
5 2
1 3
评测用例规模与约定
  1 ≤ n, m ≤ 1,000,矩阵中的数都是不超过1000的非负整数。
本题是简单题,根据题目我们可以得到该题的算法的设计思路:将一个矩阵进行逆转置。很简单相对矩阵的转置来说,逆转置就是按照逆时针旋转90度得到的矩阵。但是根据题意分析,我们没有必要再定义一个矩阵来存储逆转置之后的矩阵,只需要将原按照逆转置矩阵的存储格式输出即可。
源码:
//首先开辟一个数组,满足输入的最大规模int A[1001][1001];void main(void){    int n, m;    int i, j;    while (cin >> n >> m)    {        for (i = 0; i < n; ++i)        {            for (j = 0; j < m; ++j)                cin >> A[i][j];        }        for (i = m - 1; i >= 0; --i)        {            for (j = 0; j <= n - 2; ++j)                cout << A[j][i] << ' ';            //每行的最后一个数不需要加空格            cout << A[n - 1][i] << endl;        }    }}

PS:CCF试题类似于ACM竞赛试题,前两道一般都是简单题,很容易做出来。还有一定要注意算法的输出格式要满足题目的要求。

转载地址:http://hvpra.baihongyu.com/

你可能感兴趣的文章
Tiny210 U-BOOT(二)----配置时钟频率基本原理
查看>>
读javascript高级程序设计14-错误处理与调试
查看>>
代理模式
查看>>
javaweb学习总结(二十四)——jsp传统标签开发
查看>>
让script的type属性等于text/html
查看>>
[Docker] Docker Machine intro
查看>>
HA 高可用软件系统保养指南
查看>>
linux 文件系统sysvinit 流程分析
查看>>
体素科技:2018年,算法驱动下的医学影像分析进展
查看>>
Vue 折腾记 - (8) 写一个挺靠谱的多地区选择组件
查看>>
VS Code折腾记 - (3) 多图解VSCode基础功能
查看>>
再不懂区块链,你就OUT了!
查看>>
教你玩转自定义View—手撸一个倒计时控件如此简单
查看>>
『翻译』Node.js 调试
查看>>
我的iOS开发之路总结(更新啦~)
查看>>
Java NIO之拥抱Path和Files
查看>>
微信原图泄露的只能是 Exif ,你的隐私不在这!!!
查看>>
微信小程序教学第三章(含视频):小程序中级实战教程:列表篇-页面逻辑处理...
查看>>
页面间通信与数据共享解决方案简析
查看>>
Swift 中 Substrings 与 String
查看>>