题目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;

}

相关推荐
BirdenT15 小时前
20260424紫题训练
c++·算法
还是阿落呀15 小时前
基本控制结构
开发语言·c++·算法
样例过了就是过了16 小时前
LeetCode热题100 最长有效括号
c++·算法·leetcode·动态规划
南境十里·墨染春水16 小时前
C++笔记 forward完美转发
开发语言·c++·笔记
吃着火锅x唱着歌16 小时前
深度探索C++对象模型 学习笔记 第四章 Function语意学(2)
c++·笔记·学习
wayz1116 小时前
Day 18:Keras深度学习框架入门
人工智能·深度学习·神经网络·算法·机器学习·keras
一行代码一行诗++16 小时前
C语言中if的使用
c语言·c++·算法
AI科技星16 小时前
《基于 1 的 N 维分形与对称统一理论》
人工智能·算法·机器学习·数学建模·数据挖掘
c++之路16 小时前
C++ STL
java·开发语言·c++
瞎折腾啥啊16 小时前
vcpkg与CMake
linux·c++·cmake·cmakelists