hdu 3927 Math Geek
http://acm.hdu.edu.cn/showproblem.php?pid=3927
反幻方,挺有意思的一道题
具体可以见证明 http://www.cnblogs.com/lwbaptx/admin/Files.aspx
给出的一个构造反幻方的方法
定理:若n(n>=3)阶方阵为 A=[aij]
a[i][j]=(i-1)*(n-1)+j ; (i=1,...n, j=1,....n-1)
a[i][j]=n*(n-1)+i; (i=1,...n,j=n)
则A是一个n阶反幻方
#include <iostream> #include <cstdio> #include <algorithm> #include <cmath> #include <string.h> #include <vector> int a[205][205]; int main() { int n,T,t=1; scanf("%d",&T); while(T--) { scanf("%d",&n); for(int i=1;i<=n;i++) { for(int j=1;j<=n-1;j++) a[i][j]=(i-1)*(n-1)+j; a[i][n]=n*(n-1)+i; } printf("Case #%d:\n",t++); for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) printf("%d ",a[i][j]); printf("\n"); } } return 0; }