PaCoCo @ 2023-06-09 22:18:02
#include<iostream>
using namespace std;
int n;
int ans[15];
int board[15][15];
int cnt = 0;
void print(){
// for(int j = 1; j<=n; j++){
// for(int i = 1; i<=n; i++){
// cout<<board[j][i]<<' ';
// }cout<<endl;
// }
for(int i = 1; i<=n; i++){
cout<<ans[i]<<' ';
}cout<<endl;
// cout<<"_________________"<<endl;
}
void draw(int d, int l, int color){
for(int i = 1; i<=n; i++){
board[i][l] += color;
}
int b = d+l;
for(int i = 1; i<=n; i++){
if(-i+b<=0 || -i+b>n) continue;
board[i][-i+b] += color;
}
b = l-d;
for(int i = 1; i<=n; i++){
if(i+b<=0 || i+b>n) continue;
board[i][i+b] += color;
}
}
void dfs(int d){
if(d>n){
if(cnt++<3)
print();
return;
}
for(int i = 1; i<=n; i++){
if(board[d][i]==0){
draw(d,i,-1);
ans[d] = i;
dfs(d+1);
draw(d,i,1);
ans[d] = 0;
}
}
}
int main(){
cin>>n;
dfs(1);
cout<<cnt;
return 0;
}
by lvzekai @ 2023-07-02 08:11:50
吸氧