AcWing 823. 排列
原题链接
困难
作者:
最后五分钟
,
2024-03-04 19:54:14
,
所有人可见
,
阅读 18
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.Scanner;
public class Main {
private static int n;
private static int[] path;
private static boolean[] st;
private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
path = new int[n + 1];
st = new boolean[n + 1];
dfs(1);
bw.flush();
}
private static void dfs(int u) throws Exception{
if (u == n + 1) {
for (int i = 1; i <= n; i++) {
bw.write(path[i]+" ");
}
bw.write("\n");
return;
}
for (int i = 1; i <= n; i++)
if (!st[i]) {
st[i] = true;
path[u]=i;
dfs(u + 1);
st[i] = false;
}
}
}