csp-2014-12-02Z字形扫描

Program Description

| 201412-2 |
| 试题名称: | Z字形扫描 |
| 时间限制: | 2.0s |
| 内存限制: | 256.0MB |
| 问题描述: |
 
问题描述
 
  在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan)。给定一个n×n的矩阵,Z字形扫描的过程如下图所示:


image.png

 
  对于下面的4×4的矩阵,
  1 5 3 9
  3 7 5 6
  9 4 6 4
  7 3 1 3
  对其进行Z字形扫描后得到长度为16的序列:
  1 5 3 9 7 3 9 5 4 7 3 6 6 4 1 3
  请实现一个Z字形扫描的程序,给定一个n×n的矩阵,输出对这个矩阵进行Z字形扫描的结果。
 
输入格式
 
  输入的第一行包含一个整数n,表示矩阵的大小。
  输入的第二行到第n+1行每行包含n个正整数,由空格分隔,表示给定的矩阵。
 
输出格式
 
  输出一行,包含n×n个整数,由空格分隔,表示输入的矩阵经过Z字形扫描后的结果。
 
样例输入
 
4
1 5 3 9
3 7 5 6
9 4 6 4
7 3 1 3
 
样例输出
 
1 5 3 9 7 3 9 5 4 7 3 6 6 4 1 3
 
评测用例规模与约定
 
  1≤n≤500,矩阵元素为不超过1000的正整数。

Solution

注:图中同一斜线上的点x与y坐标之和相同

Code

/*****************************************
Filename:   Main
Author:     cwhong
Date:       2018.05.25
Description:csp2014-12-02,由图可知在同一斜线上行与列之和相同
******************************************/
 
 
#include<iostream>
 
 
using namespace std;
 
 
int map[501][501];
 
 
int main()
{
    // 定义矩阵大小
    int input_num;
    cin>>input_num;
 
 
    // 输入给定的矩阵
    int i,j;
    for (i=1;i<=input_num;i++)
    {
        for (j=1;j<=input_num;j++)
        {
            cin>>map[i][j];
        }
    }
 
 
    // 进行Z字形扫描
    int t = 2;
    // 立一个标志,表示斜线的方向,0为右上左下,1则相反
    int flag = 0;
    if (t == 2)
    {
        cout<<map[1][1]<<" ";
        t++;
    }
    for (t;t <= 2 * input_num;t++)
    {
        if (flag == 0)
        {
            for (i=1;i<t;i++)
            {
                if (i <= input_num && t - i <= input_num)
                {
                    cout<<map[i][t-i]<<" ";
                }
            }
            flag = 1;
        }
        else if (flag == 1)
        {
            for (i=1;i<t;i++)
            {
                if (i <= input_num && t - i <= input_num)
                {
                    cout<<map[t-i][i]<<" ";
                }
            }
            flag = 0;
        }
    }
    cout<<endl;
 
 
    return 0;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.#与$区别 2.避免使用${}
    jsjack_wang阅读 2,472评论 0 0
  • 基本选择器 层次选择器 过滤选择器 基本过滤选择器 内容过滤选择器 可见性过滤选择器 属性过滤选择器 子元素过滤选...
    恍若如梦hzpeng阅读 1,417评论 0 0
  • 嗯...想记录一下生活 先从在早教的时候说起吧 蒙台梭利 儿童有很多的敏感期 比如口育期 什么东西都想...
    朴朴呀阅读 1,449评论 0 0
  • 声音渐渐远去,随之而来的是一首旋律优美的乐曲,听着听着,刺猬噜噜觉得自己渐渐扎进一个云彩做的、软软的、温暖的棉被里...
    茯苓30阅读 1,917评论 0 0