作业介绍
AC
#include<bits/stdc++.h>
using namespace std;
const int N = 15;
int n;
int lie[N];
int p[2*N]; //行-列+偏移量
int q[2*N]; //行+列
int f[N];
int res = 0;
void dfs(int x)//第x行放置一个皇后
{
if(x>n)
{
res++;
if(res<=3)
{
for(int i=1;i<=n;i++) cout<< f[i] << " ";
cout << endl;
}
return ;
}
for(int i=1;i<=n;i++)
{
if( lie[i] || p[x-i+n] || q[x+i] ) continue;
lie[i] = p[x-i+n] = q[x+i] = 1;
f[x] = i;//第x行的皇后放在了第i列
dfs(x+1);
lie[i] = p[x-i+n] = q[x+i] = 0;
}
}
int main()
{
cin >> n;
dfs(1);
cout << res;
return 0;
}
- 状态
- 已结束
- 题目
- 3
- 开始时间
- 2025-8-1 0:00
- 截止时间
- 2025-8-31 23:59
- 可延期
- 24 小时