搜索和图论_复习

发布时间 2023-07-15 11:08:49作者: kingwzun

DFS

AcWing 842. 排列数字

代码

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
const int N=10;
int path[N];
bool st[N];
int n;
void dfs(int x){
    if(x>n) return ;
    for(int i=1;i<=n;i++){
        if(st[i]==1) continue;
        st[i]=1;
        path[x]=i;
        dfs(x+1);
        st[i]=0;
    }
    if(x==n){
    for(int i=1;i<=n;i++) 
        if(i==n)cout<<path[i]<<endl;
        else cout<<path[i]<<" ";
    }
}
int main(){
    cin>>n;
    dfs(1);
  return 0;
}

843. n-皇后问题