- 幻方 (magic)
- 2024-02-11 11:45:32 @
#include<bits/stdc++.h>
using namespace std;
int a[5][5];
bool vis[10];
void dfs(int depi,int depj)
{
if(depj==4)dfs(depi+1,1);
if(depi==4)
{
int sum=0,check=0;
for(int j=1;j<=3;j++)
sum+=a[1][j];
for(int i=2;i<=3;i++)
{
check=0;
for(int j=1;j<=3;j++)
check+=a[i][j];
if(check!=sum)return;
}
for(int i=1;i<=3;i++)
{
check=0;
for(int j=1;j<=3;j++)
check+=a[j][i];
if(check!=sum)return;
}
check=0;
for(int i=1;i<=3;i++)
check+=a[i][i];
if(check!=sum)return;
check=0;
for(int i=1,j=3;i<=3&&j>=1;i++,j--)
check+=a[i][j];
if(check!=sum)return;
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
cout<<a[i][j]<<' ';
cout<<endl<<endl;
}
return;
}
for(int k=1;k<=9;k++)
if(!vis[k])
{
a[depi][depj]=k;
vis[k]=1;
dfs(depi,depj+1);
vis[k]=0;
}
}
signed main()
{
ios::sync_with_stdio(false);
dfs(1,1);
return 0;
}
0 条评论
目前还没有评论...
信息
- ID
- 2028
- 难度
- 9
- 分类
- (无)
- 标签
- 递交数
- 6
- 已通过
- 3
- 通过率
- 50%
- 被复制
- 3
- 上传者