题目1465:蓝桥杯基础练习VIP-回形取数

#include<iostream>

using namespace std;

int a[201][201];//存储矩阵

int b[41000];//存储结果

int vis[201][201];//标记是否访问过

int dir[4][2]={{1,0},{0,1},{-1,0},{0,-1}};//方向:下右上左

int main(){

int m,n;

int d=0,t=0;//t记录数值的索引,d方向索引

int x,y,tx,ty;

cin>>m>>n;

x=y=1;//从第一行第一列开始

//读取矩阵

for(int i=1;i<=m;i++){

for(int j=1;j<=n;j++){

cin>>a[i][j];

}

}

//进行螺旋式遍历

for(int i=1;i<=m*n;i++){

tx=x+dir[d][0];

ty=y+dir[d][1];

if(tx<1||tx>m||ty<1||ty>n||vis[tx][ty]==1){//碰到边界需要转弯

d=(d+1)%4;

}

b[t++]=a[x][y];

vis[x][y]=1;

x+=dir[d][0];

y+=dir[d][1];

}

for(int i=0;i<m*n;i++){

cout<<b[i]<<" ";

}

return 0;

}

相关推荐
2401_8920709819 小时前
【Linux C++ 日志系统实战】LogFile 日志文件管理核心:滚动策略、线程安全与方法全解析
linux·c++·日志系统·日志滚动
yuzhuanhei20 小时前
Visual Studio 配置C++opencv
c++·学习·visual studio
小O的算法实验室20 小时前
2026年ASOC,基于深度强化学习的无人机三维复杂环境分层自适应导航规划方法,深度解析+性能实测
算法·无人机·论文复现·智能算法·智能算法改进
‎ദ്ദിᵔ.˛.ᵔ₎20 小时前
LIST 的相关知识
数据结构·list
一轮弯弯的明月20 小时前
贝尔数求集合划分方案总数
java·笔记·蓝桥杯·学习心得
不爱吃炸鸡柳20 小时前
C++ STL list 超详细解析:从接口使用到模拟实现
开发语言·c++·list
M--Y20 小时前
Redis常用数据类型
数据结构·数据库·redis
十五年专注C++开发20 小时前
RTTR: 一款MIT 协议开源的 C++ 运行时反射库
开发语言·c++·反射
‎ദ്ദിᵔ.˛.ᵔ₎21 小时前
STL 栈 队列
开发语言·c++
2401_8920709821 小时前
【Linux C++ 日志系统实战】高性能文件写入 AppendFile 核心方法解析
linux·c++·日志系统·文件写对象