推荐视频:blibli
package 深度优先搜索;
import java.util.*;
public class P1219 {
private static int n;
static boolean[] lie = new boolean[20];//列
static boolean[] u = new boolean[40];//左上到右下
static boolean[] v = new boolean[40];//右上到左下
static int aws=0;
static LinkedList<Integer> a = new LinkedList<>();
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
dfs(1);
System.out.println(aws);
}
public static void dfs(int x){
if(x>n){
aws++;
pr();
return;
}
for(int i=1;i<=n;i++){
if(!lie[i]&&!u[x-i+n]&&!v[x+i]){
lie[i]=true;
u[x-i+n]=true;
v[x+i]=true;
a.add(i);
dfs(x+1);
if(aws<3){
a.removeLast();
}
lie[i]=false;
u[x-i+n]=false;
v[x+i]=false;
}
}
}
private static void pr() {
if(aws<=3){
for(int i=0;i<n;i++){
System.out.print(a.get(i)+" ");
}
System.out.println("");
}
}
}