36分!!!大佬求助
查看原帖
36分!!!大佬求助
684280
ywb123456楼主2025/7/19 00:20
#include<bits/stdc++.h>
using namespace std;
const int N=1e1+5;
int a[N],sum[N],ans1[N],ans2[N],ans3[N];
int n;
int ans=0;
void coutt(){
	if (ans<=3){
		for (int i=1;i<=n;i++){
			cout<<sum[i]<<" ";
		}
		cout<<"\n";
	}
}
void dfs(int i){
	if (i>n){
		ans++;
		coutt();
		return ;
	}
	for (int j=1;j<=n;j++){
		if (ans1[j]==1 || ans2[i+j]==1 || ans3[i-j+n]==1) continue;
		sum[i]=j;
		ans1[j]=1;
		ans2[i+j]=1;
		ans3[i-j+n]=1;
		dfs(i+1);
		ans1[j]=0;
		ans2[i+j]=0;
		ans3[i-j+n]=0;
	}
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	cin>>n;
	dfs(1);
	cout<<ans<<endl;
	return 0;
}
2025/7/19 00:20
加载中...