ccf- Z字形扫描(补上)

2024-02-14 15:38
文章标签 ccf 扫描 字形

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

问题描述

  在图像编码的算法中,需要将一个给定的方形矩阵进行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的正整数。

思路:用一个二维数组表示这个地图,设置转向方向,当在在第0行和第n-1行都是向前移一位,然后斜向遍历到底,如果是第0列和第n-列则是向下移一位,然后斜向遍历。代码如下:

#include<stdio.h>
int main(){int n,i,j,x,y;int a[505][505]={0};scanf("%d",&n);for(i=0;i<n;i++){for(j=0;j<n;j++){scanf("%d",&a[i][j]);//printf(" %d ",a[i][j]);}}
//	printf("%d",a[0][5]);printf("%d",a[0][0]);//	a[0][0]=-1;x=0;y=0;for(i=1;;i++){//printf("s %d%d e ",x,y);if((x==0||x==n-1)&&y<n-1){y++;}	else if((y==0||y==n-1)&&x<n-1){x++;}if(x<0||x>=n||y<0||y>=n||(x==0&&y==0)){break;}printf(" %d",a[x][y]);if(x==n-1&&y==n-1){break;}if(x+1<n&&y-1>=0){while(1){x++;y--;if(y<0||x>=n){x--;y++;break;}printf(" %d",a[x][y]);	}}else if(x-1>=0&&y+1<n){while(1){x--;y++;if(y>=n||x<0){x++;y--;break;}printf(" %d",a[x][y]);	}	}	}return 0;
}

 

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



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

相关文章

Android我的二维码扫描功能发展史(完整)

最近在研究下二维码扫描功能,跟据从网上查阅的资料到自己勉强已实现扫描功能来一一介绍我的二维码扫描功能实现的发展历程: 首页通过网络搜索发现做android二维码扫描功能看去都是基于google的ZXing项目开发。 2、搜索怎么使用ZXing实现自己的二维码扫描:从网上下载ZXing-2.2.zip以及core-2.2-source.jar文件,分别解压两个文件。然后把.jar解压出来的整个c

金蝶盘点机PDA,序列号SN管理扫描入库出库质量追溯溯源防串货

比如有5个红米手机,红米手机的代码是100001, 那么这5个红米手机的条码是:100001+001,100001+002,100001+003,100001+004,100001+005, 那么入库时,依次扫描这些条码,自动生成金蝶里的入库单。并记录序列号信息。这样能实现序列号追溯,以后通过序列号就能查询出来该序列号的产品是从哪里进货的什么时候进货的,什么时间销售给谁了。 第一步:商

仓库盘点好方法,使用安卓盘点机PDA扫描商品条码进行超市盘点

仓库管理我们为什么要盘点? 因为传统的进销存出入库都需要电脑一行行的人工手工录单,比如入库时,人眼识别这个商品是什么商品,然后电脑上选择该商品,录入数量。人眼识别要求入库人对商品非常熟悉,而且对于包装规格相近的很容易弄错,张冠李戴,A商品的录单时记录成为B商品了。所以人工手工录单效率低,误差大,是导致我们进销存管理软件中帐面库存存跟仓库门店实际库存不相符合的主要原因。电脑账存跟实际库存不符合,所

金蝶盘点机PDA进行工序汇报扫描,工时工资统计使用说明书

使用盘点机PDA扫描商品条码(序列号)进行工序汇报,自动生成电脑里的【工序汇报单】,自动计算工时,工资。这样就不用去电脑上人工手工一行行录单,大大提高工作效率和数据准确性。 操作时,只需要商品条码(序列号)即可实现快速,准确的工序汇报。从而防止电脑进行工序汇报耗时,费事,不准确的问题。 注意商品条码规则:产品代码+钢管长度+炉号+管号+合同号+序列号 下面我们看下【工序汇报单】的操作步骤

金蝶工序汇报扫描,通过扫描条码的方式进行工序汇报的方法

工序汇报单扫描 优势点:传统的工序汇报是纸质的,生产过程中填好,然后生产完再安排专人录入到金蝶系统里,整个过程比较费事,容易出错,而且有延时,数据不及时。录入数据的人非当事人,数据错误后容易出现扯皮的情况。 那么如果使用盘点机PDA扫描商品条码进行工序汇报,就能很好的解决这个问题了。谁操作,谁扫描,另外扫描后工序数据实时传输到后台,电脑上立即可以看到,管理层可以根据生产数据实时做出策略。从而

金蝶盘点机PDA仓库条码管理家电空调类序列号扫描出入库整体解决方案

采购入库单 传统的进销存管理软件需要人工识别商品品种,清点商品数量,然后再去人工手工在电脑上一行行的录入采购入库单。录单效率低,误差大。 如果使用汉码盘点机PDA,入库时,仓管员只需要手持PDA去入库现场,将需要入库的商品按照顺序扫描条码,即可自动生成采购入库单,从而提高工作效率和数据准确性。 盘点机PDA的采购入库单有以下功能: (1)支持采购订单作为源单下推采购入库单,实现商品品种

金蝶盘点机PDA 门店手持PDA扫描条码查询账面库存录入要货数量生成要货申请单,总部手持PDA选择要货申请单,扫描条码按照要货单进行发货

要货申请单 优势点:使用盘点机PDA扫描商品条码做要货申请单,不用去电脑上人工手工一行行录入。手持PDA扫描商品货架,实时查询库存,录入要货数量,自动生成要货申请单。总部电脑上立即可以看到这个要货申请单,对要货申请单进行审核。总部仓管员手持PDA在【仓库调拨单】中查询选择需要配货的【要货申请单】,就知道需要发什么商品,发多少数量,并且在扫描发货时实现商品品种校验,和商品数量个校验,防止发错发

Nikto一键扫描Web服务器(KALI工具系列三十)

目录 1、KALI LINUX 简介   2、Nikto工具简介 3、信息收集 3.1 目标IP(服务器) 3.2kali的IP  4、操作实例 4.1 基本扫描 4.2 扫描特定端口 4.3 保存扫描结果 4.4 指定保存格式 4.5 连接尝试 4.6 仅扫描文件上传 5、总结 1、KALI LINUX 简介 Kali Linux 是一个功能强大、多才多

区块链会议投稿资讯CCF A--WINE 2024 截止7.15 附录用率 附录用的区块链文章

Conference:The Conference on Web and Internet Economics (WINE) CCF level:CCF A Categories:Cross-cutting/comprehensive/emerging Year:2024 Conference time: December 2-5, 2024 录用率: selected 66 p

【网络安全学习】漏洞扫描:-04- ZAP漏洞扫描工具

**ZAP(Zed Attack Proxy)**是一款由OWASP组织开发的免费且开源的安全测试工具。 ZAP支持认证、AJAX爬取、自动化扫描、强制浏览和动态SSL证书等功能。 1️⃣ 安装zap工具 现在的kali版本不一定会预装zap,我们可以自行安装,安装也十分简单。 apt-get install zaproxy -y 安装完成后,点击左上角的图标,搜索zap,点击打开即可