12分求助
查看原帖
12分求助
341245
xrk2006楼主2021/6/28 16:35

蒟蒻实在不知道错哪了,只A掉一个点……

//luoguP1219
#include<iostream>
using namespace std;
int a[20],b[20],c[20],ans=0;
int cnt[20],n;
void dfs(int x)
{
	if(x>n)
	{
		ans++;
		if(ans<=3)
		{
			for(int i=1;i<=n;i++)
			  cout<<cnt[i]<<" ";
			cout<<endl;
		}
		return;
	}
	for(int i=1;i<=n;i++)
	{
		if(a[i]==0&&b[x+i]==0&&c[x-i+15]==0)
		{
			cnt[x]=i;
			a[i]=1;
			b[x+i]=1;c[x-i+15]=1;
			dfs(x+1);
			a[i]=0;b[x+i]=0;c[x-i+15]=0;
		}
	}
}
int main()
{
	cin>>n;
	dfs(1);
	cout<<ans<<endl;
	return 0;
 } 
2021/6/28 16:35
加载中...