没有正解,都是我的暴力

T1神奇的幻方

模拟

#include<iostream>
#include<cmath>
#include<ctime>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#define LL long long
#define N 1609
using namespace std;

int n;

int h[N],l[N];

int a[42][42];

int main()
{
    scanf("%d",&n);
    h[1]=1;l[1]=(n+1)/2;a[h[1]][l[1]]=1;
    int p;p=n*n;
    for(int i=2;i<=p;i++)
    {
        int t=i-1;
        if(h[t]==1&&l[t]!=n)
        {
            a[n][l[t]+1]=i;
            h[i]=n;l[i]=l[t]+1;
            continue;
        }
        if(l[t]==n&&h[t]!=1)
        {
            a[h[t]-1][1]=i;
            h[i]=h[t]-1;
            l[i]=1;
            continue;
        }
        if(h[t]==1&&l[t]==n)
        {
            a[h[t]+1][l[t]]=i;
            h[i]=h[t]+1;
            l[i]=l[t];
            continue;
        }
        if(h[t]!=1&&l[t]!=n)
        {
            if(a[h[t]-1][l[t]+1]==0)
            {
                a[h[t]-1][l[t]+1]=i;
                h[i]=h[t]-1;
                l[i]=l[t]+1;
            }else
            {
                a[h[t]+1][l[t]]=i;
                h[i]=h[t]+1;
                l[i]=l[t];
            }
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
         printf("%d ",a[i][j]);
        printf("\n");
    }
    return 0;
}
100

相关文章:

  • 2021-12-25
  • 2021-08-03
  • 2022-02-27
  • 2022-12-23
  • 2021-04-11
  • 2022-03-05
  • 2022-01-22
  • 2021-06-12
猜你喜欢
  • 2021-06-19
  • 2021-10-19
  • 2021-06-11
  • 2021-05-29
  • 2021-11-15
  • 2021-09-27
相关资源
相似解决方案