AcWing 756. 蛇形矩阵
原题链接
简单
作者:
damage7
,
2024-11-03 12:26:04
,
所有人可见
,
阅读 4
偏移量技巧,常用技巧。此题为经典题目,看懂之后可类比写题目1102移动骑士。
C++ 代码
#include<iostream>
#include<cstdio>
using namespace std;
int st[10000][100];
int main()
{
int n,m,d=0,a,b;
int dx[]={0,1,0,-1},dy[]={1,0,-1,0};
cin>>n>>m;
for(int k=1,x=0,y=0;k<=n*m;k++){
st[x][y]=k;
a=x+dx[d];
b=y+dy[d];
if(a>=n||b>=m||a<0||b<0||st[a][b]){
d=(d+1)%4;
a=x+dx[d];
b=y+dy[d];
}
x=a;
y=b;
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cout<<st[i][j]<<" ";
}
cout<<endl;
}
return 0;
}