蛇形、之字、回字打印
打印
- Z字型扫描(有的又叫这是蛇形扫描)
- 方法一:处在同一对角线(东北指向)上的点 之 行坐标+纵坐标 的和相等,且就是对角线序号
- 方法二:利用东北指向的对角线上的点 横纵坐标之和相等,可以把横纵坐标之和相等的点存储在邻接表adj【i+j】(一个vector < int > 类型的数组)里面
- 方法三:遍历完了一条对角线拐弯
- 方法四:
- Z字型
- 逆时针回字型打印
- 1106: 蛇形填数(回字型)
- 打印漏斗
- 等腰三角形
Z字型扫描(有的又叫这是蛇形扫描)
https://www.acwing.com/problem/content/description/3211/
方法一:处在同一对角线(东北指向)上的点 之 行坐标+纵坐标 的和相等,且就是对角线序号
n * n 方阵有2*n-1条对角线,遍历行号,同时根据对角线确定列号(处在同一对角线(东北指向)上的点 之 行坐标+纵坐标 的和相等,且就是对角线序号)
一个矩阵一共有 2n−12n−1 条对角线
把对角线分成两类 右上和左下
对于每一条对角线 都有 x+y=C1 x−y=C2
也就是说 ,对角线的坐标之差/坐标之和是固定的
因此可以利用这个关系来算坐标 最后判断一下边界即可
由于Z字型扫描规律,偶序号对角线上扫描方向是 右上,行号递减;奇序号对角线上扫描方向是 左下,行号递增;
(改变遍历行号的顺序就行)
#include <iostream>
/*run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int a[505][505];
int main(int argc, char** argv) {int n;cin>>n;//n*n矩阵 for(int i=0;i<n;i++){for(int j=0;j<n;j++){cin>>a[i][j];}}int len=(n<<1)-1;
//n方矩阵有2*n-1条对角线,根据这题扫描顺序,对角线沿着东北方向 for(int i=0;i<len;i++){//if(i&1){//奇数号对角线从右上到左下输出 行号增大 偶数号对角线反之for(int j=0;j<=i;j++){if(j>=0&&j<n&&i-j>=0&&i-j<n)cout<<a[j][i-j]<<" ";
//对角线序号固定不变,要输出这一对角线上所有元素,行列都在递变
//因此要用一个变量遍历 行,再根据 行号和对角线遍历 列号 } }else{for(int j=i;j>=0;j--){if(j>=0&&j<n&&i-j>=0&&i-j<n)cout<<a[j][i-j]<<" ";}} } return 0;
}
方法二:利用东北指向的对角线上的点 横纵坐标之和相等,可以把横纵坐标之和相等的点存储在邻接表adj【i+j】(一个vector < int > 类型的数组)里面
#include <iostream>
#include <vector>
/*run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int a[505][505];
//vector<int> adj[1010];//一个vector数组连城的数组
vector<vector<int> > adj;//二维vector数组
蛇形、之字、回字打印相关推荐
- 回字有四种写法,那你知道单例有五种写法吗
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达今日推荐:2020年7月程序员工资统计,平均14357元,又跌了,扎心个人原创100W+访问量博客:点击前往,查看更多 转自 ...
- 【转】回字有四种写法,那你知道单例有五种写法吗
目录导航 基本介绍 写法介绍 饿汉式 懒汉式 双重检测 内部类 枚举 总结 基本介绍 单例模式(Singleton)应该是大家接触的第一个设计模式,其写法相较于其他的设计模式来说并不复杂,核心理念也非 ...
- 《剑指offer》-- 二叉树的下一个结点、对称二叉树、按之字性顺序打印二叉树、把二叉树打印成多行
一.二叉树的下一个结点: 1.题目: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 2.解题思路: 分析二叉树 ...
- cass方格网数据excel_讨论|CASS怎么计算回字型土方? 124
大家好,欢迎来到我的专栏.这是我原创的第124篇CASS应用技术干货文章.希望对你有所帮助,写文不易,请点赞哦! 回字型土方工程,就是计算区域内部,有一个或多个不参加计算的区域,这种区域也就是常说的& ...
- python小乌龟绘制迷宫_用turtle不断的画回字迷宫
2.[文件] 画个回字(最原始方法).py ~ 3KB 下载(4) #coding=UTF8 from turtle import * import turtle, time # 绘制正方形: col ...
- python用一行代码画个迷宫_[代码全屏查看]-用turtle不断的画回字迷宫
[2].[文件] 画个回字(最原始方法).py ~ 3KB 下载(4) #coding=UTF8 from turtle import * import turtle, time # 绘制正方形 ...
- 打印海报_新安装的字体用Word打印显示不出这种字体问题_保存为A0大小问题_ppt转换为PDF不失真问题
1. 新安装的字体用Word打印显示不出这种字体问题 解决:取消对勾 2. 保存为A0大小问题_解决:上图中更改"页面大小" 3. ppt转换为PDF不失真问题--1.选项-> ...
- 回字有四种写法,阶乘verilog实现有几种方法?
回字有四种写法,阶乘verilog实现有几种方法? 方式一:普通方式实现阶乘计算: verilog代码: module tryfact; function[31:0]factorial; input[ ...
- 请问“回”字有几种写法?
我们一行10人在讨论如何提高我们学校毕业生就业竞争力的问题,突然孔乙己用一种挑衅加高傲的眼神问我:"在论坛里看你说话感觉你才高八斗,满腹经纶.现在我有一个问题想请教一下:你知道'回'字有几种 ...
最新文章
- 李彦宏:正在发生的智能经济 4 大变革 | 赠书
- VB 断开指定进程网络连接函数
- 【渝粤教育】电大中专职业生涯规划作业 题库
- 《算法导论》第7章 快速排序 (四种变形)
- 程序设计导引(四)[终结篇]
- SAI2.0绘画软件中文版(已测可用)
- LoadRunner11的安装与破解
- es6文档笔记(全)
- 网络攻防技术——缓冲区溢出攻击实验
- 双向循环链表解决约瑟夫问题
- Nick Szabo:可信任计算的黎明
- BIP47 (支付码)
- 大数据研究,不能“忽悠”
- 若依部署css样式失效时
- RPA初级认证直通车,不懂代码也能成为技术大佬
- JAVA实现图片缩放反转
- 中小商业银行数字人民币应用发展
- 温度传感器通过机房的传输能力及漏水检测方案
- TDD基础-红绿重构练习之“井字游戏“
- 多文件内容快速对比、MD5
热门文章
- pocketgamer盘点十大最佳iPhone物理游戏
- 论文精读《BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View》
- WIN10上IPFS的简单使用(2021版)
- 第一次的博客(写一点关于今天的数据库学习吧)
- HUAWEI——VPR基础及操作
- 2020-2021学年——图像图形编程实践实验4_Canny图像边缘检测
- android 滑动到顶部或底部光影效果控制
- 【181008】VC++写的中国象棋游戏源程序
- 计算机写邮件的格式,email格式怎么写 email格式应该怎么写
- Light Image Resizer v6.0.8 图像无损批量处理工具便携版