CCF201412-2 Z字形扫描

2024-01-03 07:18
文章标签 扫描 字形 ccf201412

本文主要是介绍CCF201412-2 Z字形扫描,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题描述

试题编号:201412-2
试题名称:Z字形扫描
时间限制:2.0s
内存限制:256.0MB
问题描述:

问题描述

  在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan)。给定一个n×n的矩阵,Z字形扫描的过程如下图所示:

  对于下面的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的正整数。

 

代码

/*分两步实现扫描结果,第一部分扫描副对角线以上的元素,第二部分扫描副对角线以下的元素;
每一部分中,从左下往右上扫描(i--,j++)和从右上往左下扫描(i++,j--);*/
#include<iostream>
using namespace std;
int main()
{int n,a[500][500];cin>>n;for(int i=0;i<n;i++)    //初始化for(int j=0;j<n;j++)cin>>a[i][j];int flag=0;    //记录扫描位置是左上还是右下int i=0,j=0;cout<<a[i][j]<<" ";    //第一个元素特殊处理while(i<n-1&&j<n-1)    //副对角线以上的部分{if(flag%2==0){j++;flag++;while(j>=0){cout<<a[i][j]<<" ";i++;j--;}i--;j++;}else{i++;flag++;while(i>=0){cout<<a[i][j]<<" ";j++;i--;}j--;i++;        //越界处理,下同}}while((i!=n-1)||(j!=n-1))    //副对角线以下的部分{if(flag%2==0){i++;flag++;while(i<n){cout<<a[i][j]<<" ";i++;j--;}i--;j++;}else{j++;flag++;while(j<n){cout<<a[i][j]<<" ";j++;i--;}j--;i++;}}return 0;
}

测试结果

这篇关于CCF201412-2 Z字形扫描的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/564905

相关文章

独立按键单击检测(延时消抖+定时器扫描)

目录 独立按键简介 按键抖动 模块接线 延时消抖 Key.h Key.c 定时器扫描按键代码 Key.h Key.c main.c 思考  MultiButton按键驱动 独立按键简介 ​ 轻触按键相当于一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通与断开。  ​ 按键抖动 由于按键内部使用的是机

三维激光扫描点云配准外业棋盘的布设与棋盘坐标测量

文章目录 一、棋盘标定板准备二、棋盘标定板布设三、棋盘标定板坐标测量 一、棋盘标定板准备 三维激光扫描棋盘是用来校准和校正激光扫描仪的重要工具,主要用于提高扫描精度。棋盘标定板通常具有以下特点: 高对比度图案:通常是黑白相间的棋盘格,便于识别。已知尺寸:每个格子的尺寸是已知的,可以用于计算比例和调整。平面标定:帮助校准相机和激光扫描仪之间的位置关系。 使用方法 扫描棋盘:

Android扫描名片的动画以及剪裁扫描框的图片

参考代码:https://github.com/smartown/CertificateCamera 本文章在上述参考代码的基础上进行修改,用到的SurfaceView是链接代码里的CameraPreview,不过本人比较懒,直接加入相机连续对焦模式代替点击屏幕对焦   ,在CameraPreview中添加 parameters.setFocusMode(Camera.Parameters.F

11GR2下基于CBO全表扫描cost计算

########################################################## ##11gr2下基于cbo优化器,在不做系统统计信息收集下全表扫描的成本计算#### ########################################################## CBO的成本计算设计到非工作负载下的系统统计信息 CPUSPEEDNW=>系统

算法:图片压缩算法【Z字行扫描】(Java实现)

要在Java中实现Z字形扫描,我们需要遍历一个给定的n×n矩阵,并按照Z字形的顺序输出其元素。Z字形扫描的路径通常是从矩阵的左上角开始,沿着对角线方向交替向下和向上移动,直到遍历完整个矩阵。 下面是一个简单的Java实现示例: import java.util.Scanner;public class ZigzagScan {public static void main(String

启动spring boot项目时,第三方jar包扫描不到的问题

讲述一下遇到的问题: 在启动类Application上使用@ComponentScan 这个注解来扫描第三方的包,然后就会出现报错。异常就是无法加载本地的bean,但是可以加载到第三方的bean; 了解过spring boot启动流程的都知道,Springboot启动类注解@SpringBootApplication = @Configuration + @EnableAutoConfigura

微信扫描二维码登录第三方平台

嗯。。。。。。 最近做了一个微信扫码登陆第三方平台功能,说下步骤就行,反正原理你们网上直接百度,我这里写了,估计也没几个人有耐心看 第一步 生成一个链接   https://open.weixin.qq.com/connect/qrconnect?appid=xxxxxxxxf&redirect_uri=xxxxxxxxxxxx&response_type=code&scope=snsapi

Zxing扫描二维码精简(竖屏、拉伸处理、扫描框大小和扫描线移动、开灯)

自己在简版zxing的基础上美化了下,给大家分享下,直接扫描功能没问题。 就是从相册导入图片,解码一直不成功,导入图片解码 我引入了一个解码类  RGBLuminanceSource(百度网上二维码图片解码都是这个,我还把这个类编译了,导到core.jar包里面了), 好像是hity类型有问题,反正一直不成功。 有大神解决了,回复告诉我!谢谢! 分享 暂时没做效

[android总结]Zxing二维码扫描图片变形

关于使用ZXing扫描二维码图片变形的问题,晚上有很多种解释,但都是一个模板,经过多种尝试,还是没能解决我的问题。于是就自己研究,不过索性解决了,再次简单分享一下。 如果想在应用里添加自己的我二维码扫描功能,可以参照:http://blog.csdn.net/xiaanming/article/details/10163203   这篇博客描述的很详尽。 首先,你应该知道

深入了解 Nmap:网络安全扫描工具的强大功能与实战应用

1. 什么是 Nmap? Nmap(Network Mapper)是一款开源的网络扫描工具,被广泛用于网络发现、管理和安全审计。自1997年由 Gordon Lyon(Fyodor)发布以来,Nmap 一直是网络管理员、安全专家、渗透测试人员的重要工具。Nmap 支持多种操作系统,包括 Windows、Linux、Mac OS 和其他类 Unix 系统。 Nmap 的功能不仅限于端口扫描,还可