• 图像旋转


    试题来源为网络资源

    试题编号:    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竞赛试题,前两道一般都是简单题,很容易做出来。还有一定要注意算法的输出格式要满足题目的要求。

  • 相关阅读:
    nodejs gulp如何获取参数
    nodejs 获取当前路径的方法
    gulp 如何排除文件和文件夹
    小技巧css解决移动端ios不兼容position:fixed属性,无需插件
    代码协议相关
    zen-coding
    directive 实例讲解
    angular api 地址
    一步一步搭建hibernate4+ spring+ struts2
    华为荣耀6 H60-L02/L12(联通版)救砖包【适用于无限重启】
  • 原文地址:https://www.cnblogs.com/tgycoder/p/4988381.html
Copyright © 2020-2023  润新知