我对着题解看了没发现什么不对
代码:
#include<bits/stdc++.h>
using namespace std;
int a[114514];
int h[114514],lx[114514],rx[114514],ans;
int n;
void dfs(int x){
if(x>n){
ans++;
if(ans<=3){
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
cout<<endl;
}
return ;
}
else{
for(int i=1;i<=n;i++){
if(!h[i] && !lx[x-i+15] && !rx[i+x]){
a[i]=x;
h[i]=1,rx[i+x]=1,lx[x-i+15]=1;
dfs(x+1);
h[i]=0,rx[i+x]=0,lx[x-i+15]=0;
}
}
}
}
int main(){
cin>>n;
dfs(1);
cout<<ans;
return 0;
}