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;
}
浙公网安备 33010602011771号