COGS 2104. [NOIP2015]神奇的幻方
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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\n",hf[i][j]); return 0; }
以上是关于COGS 2104. [NOIP2015]神奇的幻方的主要内容,如果未能解决你的问题,请参考以下文章