COGS 2104. [NOIP2015]神奇的幻方

★   输入文件:2015magic.in   输出文件:2015magic.out   简单对比
时间限制:1 s   内存限制:256 MB

 模拟

一开始数组开小了。。

屠龙宝刀点击就送

#include <cstdio>
int n,h[1600],l[1600],hf[45][45];
int main()
{
    freopen("2015magic.in","r",stdin);freopen("2015magic.out","w",stdout);
    scanf("%d",&n);
    hf[1][n/2+1]=1;
    h[1]=1;l[1]=n/2+1;
    for(int i=2;i<=n*n;++i)
    {
        if(h[i-1]==1&&l[i-1]!=n) h[i]=n,l[i]=l[i-1]+1,hf[h[i]][l[i]]=i;
        else if(h[i-1]!=1&&l[i-1]==n) h[i]=h[i-1]-1,l[i]=1,hf[h[i]][l[i]]=i;
        else if(h[i-1]==1&&l[i-1]==n) h[i]=h[i-1]+1,l[i]=l[i-1],hf[h[i]][l[i]]=i;
        else if(h[i-1]!=1&&l[i-1]!=n)
        {
            if(!hf[h[i-1]-1][l[i-1]+1])
            h[i]=h[i-1]-1,l[i]=l[i-1]+1,hf[h[i]][l[i]]=i;
            else h[i]=h[i-1]+1,l[i]=l[i-1],hf[h[i]][l[i]]=i;
        }
    }
    for(int i=1;i<=n;++i)
     for(int j=1;j<=n;++j)
      j!=n?printf("%d ",hf[i][j]):printf("%d
",hf[i][j]);
    return 0;
}
我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
原文地址:https://www.cnblogs.com/ruojisun/p/7429732.html