蓝桥杯 试题 基础练习 回形取数 (c++)

【蓝桥杯】试题集-基础练习-完整版(附百分代码及部分解释) 【蓝桥杯】基础练习34道,倾心归纳,温习自用1.A+B问题2.数列排序3.十六进制转八进制4.十六进制转十进制5.十进制转十六进制6.特殊回文数7.回文数8.特殊的数字9.杨辉三角.查找整数11.数列特征12.字母图形13.01字串14.闰年判断15.Fibonacci数列16.圆的面积17.序列求和18.阶乘计算19.高精度加法20.Huffuman树21.2n皇后问题22.报时助手23.回数24.龟兔 阅读详情

题目描述

资源限制
时间限制:1.0s 内存限制:512.0MB

问题描述
  回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。
  
输入格式
  输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。
  
输出格式
  输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。
  
样例输入
3 3
1 2 3
4 5 6
7 8 9

样例输出
1 4 7 8 9 6 3 2 5

样例输入
3 2
1 2
3 4
5 6

样例输出
1 3 5 6 4 2

算法

#include<iostream>
#include<algorithm>

using namespace std;

const int N = 210;

int m, n;
int g[N][N];    //  点的值
bool st[N][N];  //  是否被遍历过

bool is_valid(int x, int y) { // 判断当前的点是否有效和是否被遍历过
    if (x < 1 || x > m || y < 1 || y > n) return false;
    if (st[x][y] == true) return false;
    return true;
}


int main() {
    cin >> m >> n;
    for (int i = 1; i <= m; i++)
        for (int j = 1; j <= n; j++) {
            scanf("%d", &g[i][j]);
        }

    bool flag = true;
    int nx = 1, ny = 1;
    int dx[4] = {1, 0, -1, 0};
    int dy[4] = {0, 1, 0, -1};
    int direction = 0; // 0为下 1为右 2为上 3为左
    int cnt = 0;

    // 初始化
    printf("%d ", g[1][1]);
    st[1][1] = true;

    while(flag) {
        while(is_valid(nx + dx[direction], ny + dy[direction])) {  // 判断是否下一个点满足条件, 如果满足则将当前的点移动为下一个点, 并输出该点的值
            cnt = 0;
            nx += dx[direction]; // 移动当前的点,移动的方向为direction代表的方向
            ny += dy[direction];
            st[nx][ny] = true;
            printf("%d ", g[nx][ny]);
        }
        cnt ++; // 改变方向的次数自增, 若大于4,则说明周围的点都已经被遍历过了
        direction = (direction + 1) % 4;
        if (cnt == 4) flag = false; // 跳出循环
    }
    return 0;
}

思路

直接暴力模拟就可以了, 具体看代码的注释

蓝桥杯C/C++VIP试题每日一练之回形取数 蓝桥杯每日一练第二十二天报时助手。 阅读详情

相关推荐

大疆OcuSync系统背后的黑科技:跳频扩频技术如何让你的无人机飞得更稳

本文深入解析了大疆OcuSync系统如何运用跳频扩频技术等先进无线通信方案,显著提升无人机在复杂环境下的飞行稳定性。系统通过跳频扩频与直接序列扩频技术协同工作,结合双频智能切换与多天线MIMO,有效对抗信号干扰与多径效应,确保控制指令与高清图传的可靠、低延迟传输,为用户带来更安心、更流畅的飞行体验。

ol7890123的博客 630

基础练习 回形取数

问题描述   回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。 输入格式   输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。 输出格式   输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。 样例输入 3 3 1 2 3

WhataNerd的博客 1540

C++笔试题整理

目录 1. 笔试题1 1.1 链表反转 1.2 String 2. 笔试题2 2.1 求下面函数的返回值(微软) 2.2 什么是“引用”?申明和使用“引用”要注意哪些问题? 2.3 将“引用”作为函数参数有哪些特点? 2.4 在什么时候需要使用“常引用”?  2.5 将“引用”作为函数返回值类型的格式、好处和需要遵守的规则? 2.6 “引用”与多态的关系? 2.7 “引用”与指针的区别是什么? 2.8 什么时候需要“引用”? 2.9 结构与联合有和区别? 2.10 下面关于.

星月相随的专栏 2485

盘龙数组

输入 3 输出 1 2 3 8 9 4 7 6 5 #include"stdio.h" #include"string.h" #define maxn 20 int main () {  int x,y,n,a[maxn][maxn],tot;  scanf("%d",&n);  memset(a,0,sizeof(a));  tot=a[x=0][y=n-1]

元素烨的博客 934

如何用zemax导入solidworks装配体

在zemax使用中,常常需要导入各种零件。如果光机结构较为复杂,那么手工一个一个加载零件,还需要在zmx文件中调整object的位置,非常麻烦。如果能将solidworks的装配体模型直接导入,则可以大幅减小工作量。具体过程为(非序列模式下): 1、新建或打开一个zemax空文件 2、在元件编辑器中,找到一个空文件,双击或直接展开三角符,在类型中找到zemax里的solidworks装配体,如图。...

wojiaoyyy的博客 1万+

工程师必看:如何用功率谱密度搞定随机振动测试(附Grms计算实例)

本文为工程师详解如何通过功率谱密度(PSD)曲线计算Grms(总均方根加速度),从而量化随机振动测试的强度。文章拆解了平直谱、斜谱的计算公式,提供了完整的Grms计算实例,并指出了单位换算、对数坐标等常见工程陷阱,帮助工程师精准完成测试准备与设备推力评估。

3c4x5z6v7b的博客 628

排名

今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑 每题的分值,所以并不是最后的排名。给定录取分数线,请你写程序找出最后通过分数线的 考生,并将他们的成绩按降序打印。 INPUT 测试输入包含若干场考试的信息。每场考试信息的第1行给出考生人数N ( 0 < N < 1000 )、考题数M ( 0 < M < = 10 )、分数线(正整数)G;第2行排序给出第1题至第M题的正整数分值;以下N行,每行给出一 名考生的准考证号(长度不超过20的字符串

哈密瓜味的猪 429

IEC 61400-1:2019 附录 C 湍流模型全面解读

IEC 61400-1:2019 附录 C 全面解读

weixin_46713695的博客 471

【算法与数据结构】旋转数组

class Solution { public boolean rotateString(String s, String goal) { /*判断一个字符串是否在另外一个字符串中出现 (s+s)就包含了所有的旋转可能了 */ return s.length()==goal.length() && (s+s).contains(goal); } } ...

weixin_42605985的博客 477

黑猫带你学eMMC协议第17篇:超详细的eMMC HS200 & HS400讲解

1 前言 1.1 声明 本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。 本文结合eMMC JEDEC5.1协议手册查看效果更佳。 1.2 内容提要 本文大约6000字,主要内容有: 1.什么是emmc hs200/hs400? 2.什么是tuning?tuning的过程又是什么? 3.如何设置才能让emmc进入hs200 mode? 4.如何设置才能让emmc进入hs400 mode? 5.emmc关于HS200/HS400内部结构框图对比。 6.部分个人相关经验总结。

黑猫奥利奥的博客 1万+

代谢组数据分析(二十六):LC-MS/MS代谢组学和脂质组学数据的分析流程

本教程概述了LC-MS/MS在代谢组学和脂质组学数据分析中的应用流程。首先介绍了样本的采集、提取和LC-MS/MS分析,随后详细阐述了质谱数据的预处理、峰值识别、特征注释,以及数据标准化和统计分析的重要性。特别强调了使用XCMS和CAMERA进行数据对齐和加合物识别,以及利用MultiABLER和LipidFinder进行数据过滤、插补和标准化处理。此外,还介绍了如何应用EigenMS算法进行数据标准化,以及如何使用Limma包进行差异分析。整个流程旨在提高数据质量,确保分析结果的准确性和可靠性,为后续的生

专注生信领域 1959

蓝桥杯试题集试题总汇(C++)

蓝桥杯试题总汇(C++) 基础练习 BASIC-30 VIP试题 阶乘计算 高精度 ...

行秋的博客 1万+

(2)NPW(监控片)【中】---业务场景精讲

自己在日常工作当中,由于非产线人员出生,对NPW的知识一直一知半解,业务场景认识的不够透彻,做系统的时候很难理解甲方的NPW业务应用,特收集了不少关于NPW的一些业务场景,下面都是一些摘抄,大家关注我标红标粗的部分,

阿拉伯梳子的专栏 1590

蓝桥杯C++——试题 基础练习 回形取数(VIP试题)

问题描述   回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。 输入格式   输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。 输出格式   输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。 样例输入 3 3 1 2 3 ...

行秋的博客 1358

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

蓝桥杯练习系统-基础练习34道题解答答案全汇总(c/c++)

蓝桥杯练习系统BASIC-13 数列排序(c++,利用sort) 蓝桥杯练习系统BASIC-12 十六进制转八进制(c++,利用string) 蓝桥杯练习系统BASIC-11 十六进制转十进制(c++,利用流) 蓝桥杯练习系统BASIC-10 十进制转十六进制(c++,利用流) 蓝桥杯练习系统BASIC-9 特殊回文数(c++利用流和字符串) 蓝桥杯练习系统BASIC-8 回文数(c++,超简洁,利用流和字符串) 蓝桥杯练习系统BASIC-7 特殊的数字(c++,利用流和string) 蓝桥练习系统BASI

weixin_53037232的博客 5784

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

蓝桥杯 试题 基础练习 回形取数

试题 基础练习 回形取数 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。 输入格式 输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。 输出格式 输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。 样例输入 3 3 1 2 3 4 5 6 7 8 9 样例输出 1 4 7 8 9

qq_45971324的博客 384

C语言 蓝桥杯 试题 基础练习 回形取数

问题描述   回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。 输入格式   输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。 输出格式   输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。 样例输入 3 3 1 2 3 4 5 6 7 8 9 样例输出 1 4 7 8 9 6 3 2 5 样例输入 3 2 1 2 3 4

Insane_Outlier的博客 488

蓝桥杯 试题 基础练习 回形取数 JAVA

内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s。回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。

m1069370087的博客 299

试题 基础练习 回形取数

资源限制 内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述   回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。 输入格式   输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。 输出格式   输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。 样...

m0_51170523的博客 160

蓝桥杯 试题 基础练习 回形取数 C

资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述   回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。 输入格式   输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。 输出格式   输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。 样例输入 3 3 1 2 3 4 5 6 7 8 9 样例输出 1 4 7 8 9 6 3 2

qq_47831790的博客 352

试题28 基础练习 回形取数

试题28 基础练习 回形取数

m0_64132509的博客 142

蓝桥杯练习java答案-基础练习

目录 基础练习 BASIC-01 A+B问题 BASIC-02 数列求和 BASIC-03 圆的面积 BASIC-04 Fibonacci数列 BASIC-1 闰年判断 BASIC-2 01字符 BASIC-3 字母图形 BASIC-4 数列特征 BASIC-5 查找整数 BASIC-6 杨辉三角形 BASIC-7 特殊的数字 BASIC-8 回文数 BASIC-9 特殊回文数 BASIC-10 十进制转十六进制 BASIC-11 十六进制转十进制 BASIC-12 十

weixin_60460398的博客 2723

蓝桥杯Python这一篇就够了-训练系统题库合集(包括VIP试题)&数据结构与算法

第一版写于2020-11-13,第十一届蓝桥杯国赛前夕,老师和同学建议说写博文可以让学习更高效,陆陆续续写一些题解和学习笔记,在我的代码中我加了很多有助于理解程序的注释,希望这篇博客可以帮助你在蓝桥杯比赛或python学习取得进展。 一起进步,冲! 目录一、蓝桥杯题库1.1入门训练1.2基础练习 一、蓝桥杯题库 1.1入门训练 Fibonacci数列 圆的面积 序列求和 A+B问题 1.2基础练习 数列排序 十六进制转八进制 十六进制转十进制 ...

Harry______的博客 12万+

蓝桥杯试题及答案分享(Python版)

蓝桥杯比赛介绍,Python组竞赛,试题分析与代码解读

计算机视觉方面的点点滴滴,欢迎一起讨论 2万+

【回形取数】试题 基础练习 回形取数 Python详细分解解答

定义了四个方法(is_2d_list(),qushu(),xuanzhuan(),guo())。

weixin_64170510的博客 188
上一篇: 整数划分问题 动态规划解决 (C++)
下一篇: 蓝桥杯 A* 算法
ghost_him
博客等级 码龄6年 598粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值