36分,求助!!
查看原帖
36分,求助!!
1186595
haowei0105楼主2024/12/7 17:48
#include <bits/stdc++.h>
using namespace std;
int n=1;
int c,ans;
int an[100][10];
int a[50];
int x[50],y[50],b[50];
void f1()
{
	for(int i=1;i<=c;i++)
	{
		an[n][i]=a[i];
	}
	n++;
}
void f(int i)
{
	for(int j=1;j<=c;j++)
	{
		if(!b[j]&&!x[i+j]&&!y[i-j+c-1])
		{
			a[i]=j;
			b[j]=1;
			x[i+j]=1;
			y[i-j+c-1]=1;
			if(i==c)
			{
				f1();
				ans++;
			}
			else
			{
				f(i+1);
			}
			a[i]=0;
			b[j]=0;
			x[i+j]=0;
			y[i-j+c-1]=0;
		}
	}
}

int main()
{
	cin>>c;
	f(1);
	
	for(int i=1;i<=3;i++)
	{
		for(int j=1;j<=c;j++)
		{
			cout<<an[i][j]<<' ';
		}
		cout<<endl;
	}
	cout<<ans;
}
2024/12/7 17:48
加载中...