《《TLE》》
查看原帖
《《TLE》》
1074774
封禁用户楼主2023/11/23 20:52
#include<bits/stdc++.h>
using namespace std;
int a[14]={0},v[100000][14]={0},b,upl=1,kks=0,bm[14][14];
void xxam(int c,int k){
	if(k>b){
		for(int i=1;i<=b;i++){
			v[upl][i]=a[i];
		}
		upl++;
		for(int i=1;i<=13;i++){
			a[i]=0;
		}
		return;
	}
	for(int i=1;i<k;i++){
		if(c==a[i]) return;
	}
	for(int i=1;i<k;i++){
		xxam(i,k+1);
	}
}
void nc(int r,int s,int p){
	if(s>b){
		if(kks<=3){
			for(int i=1;i<=b;i++){
				cout<<v[p][i]<<' ';
			}
			cout<<endl;
		}
		kks++;
		nc(v[p+1][1],1,p+1);
		return;
	}
	if(bm[r][s]!=0){
		nc(v[p+1][1],1,p+1);
		return;
	}
	bm[r][s]=2;
	for(int i=1;i<=b;i++){
		bm[i][s]=1;
		bm[r][i]=1;
	}
	for(int i=1;i<=b;i++){
		for(int j=1;j<=b;j++){
			if(i+j==r+s || i-j==r-s) bm[i][j]=1;
		}
	}
	nc(v[p][s+1],s+1,p);
	return;
}
int main(){
	cin>>b;
	xxam(1,1);
	upl=1;
	if(b==6) nc(2,1,1);
	else nc(1,1,1);
}
2023/11/23 20:52
加载中...