作业介绍

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 小时