本文共 1397 字,大约阅读时间需要 4 分钟。
问题描述
试题编号: 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的正整数。 以n=4为例,依次写出矩阵的坐标, sum=0:(0,0) sum=1:(0,1) (1,0) sum=2: (2,0) (1,1)(0,2) sum=3:(0,3)(1,2)(2,1)(3,0) sum=4:(3,1)(2,2)(1,3) sum=5:(2,3)(3,2) sum=6:(3,3) 总结规律,sum#include//#include using namespace std;int main(){ int n,i,j,k,t,sum; int flag=0; cin>>n; int a[510][510]; for(i=0;i >t; a[i][j]=t; } } for(sum=0;sum =0&&j =0&&i 0&&j 0&&i
以上是按自己思路所写代码,粘贴一个网上程序,规律相同,做题思路有借鉴之处
#include#include #include #include #include #include using namespace std;#define size 500int map[size+5][size+5];int main(){ int n; int i,j; cin>>n; for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ cin>>map[i][j]; } } //int sum=3; //f=1,e=2; int nn=2*n; //bool b=true;//e减 f增 int a=1,b=2; cout<
转载地址:http://spxgi.baihongyu.com/