0分求调
查看原帖
0分求调
768270
__why楼主2023/11/24 18:27
#include<bits/stdc++.h>
using namespace std;
const int maxn = 15;
bool d[maxn*maxn] = {0},b[maxn] = {0},c[maxn*maxn] = {0};
int n,sum = 0,a[100005];
void print(){
	if(sum==3);
	sum++;
	for(int i = 1;i<=n;i++)cout<<a[i]<<" ";
	cout<<endl;
}
int search(int i){
	for(int j = 1;j<=n;j++){
		if((!b[j])&&(!c[i+j])&&(!d[i-j+n-1])){
			a[i] = j;
			b[j] = 1;
			c[i+j] = 1;
			d[i-j+n-1] = 1;
			if(i==n)print();
			else {
				search(i+1);
				a[i] = 0;
				b[j] = 0;
				c[i+j] = 0;
				d[i-j+n-1] = 0;
			}
			
		}
	}
}
int main(){
	cin>>n;
	search(1);
	cout<<sum;
	return 0;
}
2023/11/24 18:27
加载中...