1579.三阶幻方
时限:1000ms 内存限制:10000K 总时限:3000ms
描述
三阶幻方是最简单的幻方,又叫九宫格,是由1,2,3,4,5,6,7,8,9九个数字组成的一个三行三列的矩阵,其对角线、横行、纵向的的和都为15。
输入
无
输出
按字典序输出所有的满足条件的幻方矩阵,每两个数字之间带一个空格,行尾无空格,每个幻方后带一个空行。
#include <iostream>
int used[10];
int ans[9];
int col[3],lin[3],dia[2];
void dfs(int m);
bool meetcond(); //判断解是否满足条件
void output(); //输出一组可行解
using namespace std;
int main()
{
dfs(0);
return 0;
}
void dfs(int m)
{
if(m==9)
{
if(meetcond())
{
output();
}
}
else
{
for(int i=1; i<10; i++)
{
if(!used[i])
{
ans[m]=i;
used[i]=1;
dfs(m+1);
used[i]=0;