CCF CSP 201412-2 Z字形扫描
CCF CSP 201412-2 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+1行每行包含n个正整数,由空格分隔,表示给定的矩阵。
输出格式
样例输入
1 5 3 9
3 7 5 6
9 4 6 4
7 3 1 3
样例输出
评测用例规模与约定
代码
解法一
#include <iostream> using namespace std; int n;
int a[][]; int main() {
cin >> n;
for(int i=; i<n; i++)
for(int j=; j<n; j++)
cin >> a[i][j]; for(int k=; k<=n; k++)
for(int i=k-, j=; i>=; i--, j++)
if(k&) cout << a[i][j] << " ";
else cout << a[j][i] << " "; for(int k=n-; k>; k--)
for(int i=n-, j=n-k; j<n ; i--, j++)
if(k&) cout << a[i][j] << " ";
else cout << a[j][i] << " ";
}
解法二
#include "iostream" using namespace std; int a[][]; bool rightOrDown = false; // initial go right
bool dlOrUr = false; // down left or up right, initial go down left
bool parallelOrDiagonal = false; // initial parallel;
int diagonalStep = ;
int x = , y = ; void moveParallel() {
if(rightOrDown) x += ;
else y += ;
cout << a[x][y] << ' ';
} void moveDiagonal() {
for(int s=; s<diagonalStep; s++) {
if(dlOrUr) x -= , y += ;
else x += , y -= ;
cout << a[x][y] << ' ';
}
} int main() {
int n;
cin >> n;
for(int i=; i<n; i++)
for(int j=; j<n; j++)
cin >> a[i][j]; cout << a[x][y] << ' ';
for(int i=; i<*n-; i++) {
moveParallel();
rightOrDown = !rightOrDown;
moveDiagonal();
dlOrUr = !dlOrUr;
if(i<=n-) diagonalStep++;
else diagonalStep--;
if(i==n-) diagonalStep -= , rightOrDown = !rightOrDown;
}
}
CCF CSP 201412-2 Z字形扫描的更多相关文章
- CCF真题之Z字形扫描
201412-2 问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan).给定一个n×n的矩阵,Z字形扫描的过程如下图所示: 对于下面的4×4的矩阵, 1 5 ...
- [CCF] Z字形扫描
CCF Z字形扫描 感觉和LeetCode中的ZigZag还是有一些不一样的. 题目描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan).给定一个n×n的矩阵,Z ...
- CCF——Z字形扫描问题
试题编号: 201412-2 试题名称: Z字形扫描 时间限制: 2.0s 内存限制: 256.0MB 问题描述: 问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag ...
- CCF系列之Z字形扫描(201412-2)
试题编号:201412-2试题名称:Z字形扫描时间限制: 2.0s内存限制: 256.0MB 问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan).给定一个n ...
- CSP201412-2:Z字形扫描
引言:CSP(http://www.cspro.org/lead/application/ccf/login.jsp)是由中国计算机学会(CCF)发起的"计算机职业资格认证"考试, ...
- Z字形扫描(201412-2)
问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan).给定一个n×n的矩阵,Z字形扫描的过程如下图所示: 对于下面的4×4的矩阵, 1 5 3 9 3 7 5 ...
- Z字形扫描矩阵
问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan).给定一个n×n的矩阵,Z字形扫描的过程如下图所示: 对于下面的4×4的矩阵, 1 5 3 9 3 7 5 ...
- 201412-2 Z字形扫描(c语言)
问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan).给定一个n×n的矩阵,Z字形扫描的过程如下图所示: 对于下面的4×4的矩阵, 1 5 3 9 3 7 5 ...
- CCF201412-2 Z字形扫描 java(100分)
试题编号: 201412-2 试题名称: Z字形扫描 时间限制: 2.0s 内存限制: 256.0MB 问题描述: 问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag ...
随机推荐
- Sentence-seven basic patterns 英语句子结构
Meaning of some words subject 主语 verb 动词 object 宾语 adverbial 状语 complement 补语 imperative sentence 祈 ...
- IntelliJ IDEA中Java类注释
打开Idea,依次选择File-->Settings-->Editor-->File and CodeTemplates ,右侧tab选项卡点击Includes,选择File Hea ...
- JavaScript 时间与时间戳转换
一.获取yyyy-MM-dd hh:mm:ss 格式的时间 function getdate(timeStamp) { if (timeStamp) { var now = new Date(time ...
- session使用
Session的声明与使用 Session的设置不同于Cookie,必须先启动,在PHP中必须调用session_start().session_start()函数的语法格式如下: Bool sess ...
- 介绍一个强大的画图类 CImage(转)
我们知道,Visual C++的CBitmap类和静态图片控件的功能是比较弱的,它只能显示出在资源中的图标.位图.光标以及图元文件的内容,而不像VB中的Image控件可以显示出绝大多数的外部图像文件( ...
- Python练习-短小精干版三级"片儿"
经过今天Alex大神的指点,终于打通任督二脉了!将昨天比较复杂的代码优化至此:(代码注释后期添加) # 编辑者:闫龙 #三级目录 menu = { '北京':{ '海淀':{ '五道口':{'soho ...
- 对于Json的认识
Json简介 1. JSON 是什么 JSON,全称是 JavaScript Object Notation,即 JavaScript 对象标记法. JSON 是一种轻量级(Light-Weigh ...
- 一步一步搭建11gR2 rac+dg之安装rac出现问题解决(六)【转】
一步一步在RHEL6.5+VMware Workstation 10上搭建 oracle 11gR2 rac + dg 之安装rac出现的问题 (六) 本文转自 一步一步搭建11gR2 rac+dg之 ...
- .net HttpCrawler
using HtmlAgilityPack; using System; using System.Collections.Generic; using System.Diagnostics; usi ...
- Android页面之间进行数据回传
要求:页面1跳转到页面2,页面2再返回页面1同时返回数据 页面1添加如下代码: Intent intent = new Intent(); intent.setClass(页面1.this, 页面2. ...