Files
Data-Structure/Algorithm/Bit/全排列.cpp
2025-09-21 12:21:50 +08:00

36 lines
601 B
C++

#include <iostream>
#include <vector>
#include <iomanip>
using namespace std;
vector<vector<int>> result;
void dfs(vector<int>& path, vector<bool>& used, int n){
int js = 0;
for(int i = 0; i < n; i++){
if(used[i] == false){
js++;
used[i] = true;
path.push_back(i);
dfs(path, used, n);
path.pop_back();
used[i] = false;
}
}
if(js == 0){
result.push_back(path);
return;
}
}
int main(){
int n;
cin >> n;
vector<int> path;
vector<bool> used(n, false);
dfs(path, used, n);
for(auto x : result){
for(auto y: x){
cout << setw(5) << y + 1;
}
cout << endl;
}
}