dfs

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int n;
int path[N];
bool st[N];

void dfs(int u){
if(u==n){
for(int i=0;++i) printf("%d ", path[i]);
return;
}

for(int i=1;i<=n;++i){
if(!st[i]){
path[u] = i;
st[i]=true;
dfs(u+1);
st[i]=false;
}
}
}