欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Acwing756. 蛇形矩阵:模拟

发布时间:2025/4/5 编程问答 31 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Acwing756. 蛇形矩阵:模拟 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

    • 题目分析
    • 题目链接

题目分析

所谓蛇形走位就是 螺旋形走位。
比如

1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7

模拟:需要知道4个偏移量,同时需要注意是顺时针更改方向,比如从右转向下就是偏移量从(0,1)变成(1,0)。此外,需要注意边界条件。

int dx[4] = { 0, 1, 0, -1},dy[4] = { 1, 0 , -1 ,0}; //偏移量

ac代码

#include<bits/stdc++.h> using namespace std;const int N = 110; int n,m;int q[N][N];int main(){cin>>n>>m;int dx[4] = { 0, 1, 0, -1},dy[4] = { 1, 0 , -1 ,0}; //偏移量int x = 0 , y = 0 ,d =0; //d用来控制方向for(int i=1;i<= n* m ; i++){q[x][y] = i ;int a= x + dx[d] , b = y + dy[ d]; //沿当前方向走下一个格子坐标// 边界或者之前遍历过,就转向if(a <0 || a>= n || b<0 ||b>= m ||q[a][b]){d=(d+1) %4; //转向a= x +dx[d] ,b = y +dy[d];}x= a, y =b; //cout<<a<<" "<<b<<endl;}for(int i=0;i< n; i++) {for(int j=0;j<m;j++)cout<< q[i][j]<<" ";cout<<endl;} }

题目链接

Acwing756. 蛇形矩阵

总结

以上是生活随笔为你收集整理的Acwing756. 蛇形矩阵:模拟的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。