来源:牛客网
老李见和尚赢了自己的酒,但是自己还舍不得,所以就耍起了赖皮,对和尚说,光武不行,再来点文的,你给我说出来1-8的全排序,我就让你喝,这次绝不耍你,你能帮帮和尚么?
输入描述:
无
输出描述:
1~8的全排列,按照全排列的顺序输出,每行结尾无空格。
示例1
输入
No_Input
No_Input
输出
Full arrangement of 1~8
Full arrangement of 1~8
备注:
1~3的全排列 : 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1
思路:
dfs板子题,会背板子就会做
#include <bits/stdc++.h>
using namespace std;
int u = 0, n = 8, c = 0;
vector<int>bol(10, 0);
vector<int>num(10, 0);
void dfs(int u) {
if (u == n) {
for (int i = 0; i < n; i++)
printf("%d%c", num[i], " \n"[i == (n - 1)]);
return;
}
for (int j = 0; j < n; j++) {
if (bol[j] == 0) {
bol[j] = 1;
num[u++] = j + 1;
dfs(u);
u--;
bol[num[u] - 1] = 0;
}
}
}
int main() {
dfs(0);
return 0;
}