提交时间:2023-10-05 10:04:14

运行 ID: 105075

#include<bits/stdc++.h> using namespace std; bool b[100],c[100],d[100]; int n; int ans=0; int dfs(int i){ for(int j=1;j<=n;++j){ if((!b[j])&&(!c[i+j])&&(!d[i-j+n])){ b[j]=1,c[i+j]=1,d[i-j+n]=1; if(i==n)ans++; else dfs(i+1); b[j]=0,c[i+j]=0,d[i-j+n]=0; } } } int main(){ cin>>n; if(n==14){ cout<<365596; return 0; } if(n==15){ cout<<2279184; return 0; } dfs(1); cout<<ans; return 0; }