社区讨论

求帮办

P1219[USACO1.5] 八皇后 Checker Challenge参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mhiyvmgg
此快照首次捕获于
2025/11/03 17:58
4 个月前
此快照最后确认于
2025/11/03 17:58
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int a[14],b[14],c[14],sum,ans[10000];
int n;
int OUT()
{
	if(sum<=3){
			for(int j=1;j<=n;j++){
				cout<<ans[j]<<" ";
			}	
			cout<<endl;	
		}
		
	cout<<sum;
	return 0;
}
int DFS(int k,int x)
{
	
	int i=1;
	while(k<=n){
	if(a[i]!=1&&b[k-i]!=1&&c[k+i]!=1){
				a[i]=1;b[k-i]=1;c[k+i]=1;
				int m=x+1;
				DFS(k+1,m);
				ans[k]=i;
				if(i>=n){
				i-=n;
				}
				else if(k!=1){
				return 0;
				}
			}
			if(i>=n)
			{
				n-=i;
			}
	i++;
}
sum++;
OUT();
for(int i=1;i<=n;i++){
a[i]=b[i]=c[i]=0;
}
return 0;
}
int main()
{
cin>>n;
DFS(1,1);
return 0;
}

样例都没过

回复

0 条回复,欢迎继续交流。

正在加载回复...