提交时间:2024-03-22 18:54:41

运行 ID: 139250

#include<bits/stdc++.h> using namespace std; int N,res=0; void queen(int *arr,int r){ if(r==N){ res++; } else{ for(int c=0;c<N;c++){ arr[r]=c; bool can=true;//标记是否可以放皇后 for(int c1=0;c1<r;c1++){//不在同一行 if(arr[r]==arr[c1]||abs(r-c1)==abs(arr[r]-arr[c1])){ can=false; break; } } if(can) queen(arr,r+1);//不满足则继续 } } } int main(){ cin>>N; int arr[N+1]; queen(arr,0); cout<<res<<endl; return 0; }