求助QWQ
查看原帖
求助QWQ
783941
Jamison楼主2022/9/26 13:25
#include<bits/stdc++.h>
using namespace std;
long long n,num,a[15],b1[15],b2[15],b3[15];
void print()
{
	if(num<=3)
	{
		for(int i=1;i<=n;i++) cout<<a[i]<<" ";
		cout<<endl;
	}
	return ;
}
void dfs(long long k)
{
	if(k>n) num++,print();
	for(int i=1;i<=n;i++)
	{
		if(!b1[i] && !b2[k+i] && !b3[k-i+15])
		{
			a[k]=i;
			b1[i]=1,b2[k+i]=1,b3[k-i+15]=1;
			dfs(k+1);
			b1[i]=0,b2[k+i]=0,b3[k-i+15]=0;
		}
	}
}
int main()
{
	cin>>n;
	dfs(1);
	cout<<num;
	return 0;
}
2022/9/26 13:25
加载中...