P1219,3红一紫,求助
  • 板块学术版
  • 楼主Forever1507
  • 当前回复2
  • 已保存回复2
  • 发布时间2020/8/15 11:33
  • 上次更新2023/11/6 20:14:28
查看原帖
P1219,3红一紫,求助
359614
Forever1507楼主2020/8/15 11:33
#include <bits/stdc++.h>
using namespace std;
bool lie[20]={},first[20]={},second[20]={};
int s=0,n,li[15];
void print(){
	for(int i=1;i<=n;i++){
		cout<<li[i]<<' ';
	}
	cout<<endl;
}
void dps(int x){
	if(x==n+1){
		s++;
		if(s<=3){
			print();
		}
		return;
	}
	for(int i=1;i<=n;i++){
		if(lie[i]==false&&first[x-i+n]==false&&second[x+i]==false){
			lie[i]=first[x-i+n]=second[x+i]=true;
			li[x]=i;
			dps(x+1);
			lie[i]=first[x-i+n]=second[x+i]=false;
		}
	}
	
	return ;
}
int main(){
	cin>>n;
	dps(1);
	cout<<s;
	return 0;
}
2020/8/15 11:33
加载中...