l思路大概正确欸,却连样例也过不了,求助
查看原帖
l思路大概正确欸,却连样例也过不了,求助
1240139
ptxy2352010111楼主2025/7/1 22:44
#include<bits/stdc++.h>
using namespace std;
int n,a[20],h=0;
bool pd(int x,int y){
	for(int i=1;i<x;i++){
		if(abs(i-a[i])==abs(x-y)||a[i]==y){
			return 0;
		}
	}
	return 1;
}
void s(int i){
	if(i>=n){
		h++;
		if(h<=3){
			for(int j=1;j<=n;j++){
				cout<<a[j]<<" ";
			}
			cout<<endl;
		}
		return;
	}
	for(int j=1;j<=n;j++){
		if(pd(i,j)){
			a[i]=j;
			s(i+1);
		}
	}
	return;
}
int main(){
	cin>>n;
	s(1);
	cout<<h;
	return 0;
}
2025/7/1 22:44
加载中...