题解
2026-03-05 21:52:55
发布于:广东
0阅读
0回复
0点赞
变态的模拟题,已本蒟蒻的水平只能写出这种代码了,见谅qwq。
但其实本身好理解,照着题目说的做就行了。
#include<bits/stdc++.h>
using namespace std;
struct Node{
int x,y;
}a[2010];
int n;
int vis[50][50];
int main(){
cin>>n;
a[1]={1,n/2+1};
vis[a[1].x][a[1].y]=1;
for(int i=2;i<=n*n;i++){
if(a[i-1].x==1&&a[i-1].y!=n) a[i]={n,a[i-1].y+1};
else if(a[i-1].y==n&&a[i-1].x!=1) a[i]={a[i-1].x-1,1};
else if(a[i-1].x==1&&a[i-1].y==n) a[i]={a[i-1].x+1,a[i-1].y};
else if(a[i-1].x!=1&&a[i-1].y!=n){
if(vis[a[i-1].x-1][a[i-1].y+1]==0) a[i]={a[i-1].x-1,a[i-1].y+1};
else a[i]={a[i-1].x+1,a[i-1].y};
}
vis[a[i].x][a[i].y]=i;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<vis[i][j]<<' ';
}
cout<<'\n';
}
return 0;
}
这里空空如也




有帮助,赞一个