zoukankan      html  css  js  c++  java
  • luogu 1706 全排列问题

    dfs的简单问题,一个dfs函数一般情况应该输出一个结果

    #include<bits/stdc++.h>
    using namespace std;
    
    int n;
    bool vis[20];//i是否访问过 
    int a[20];
    void pr(){
        for(int i=1;i<=n;i++)
        cout<<setw(5)<<a[i];//setw输出固定数量的空格 
        cout<<endl;
    }
    void dfs(int x)//x是层数 
    {//一次输出一组数 ,也是dfs的特点 
        if(x>n){//输出 
            pr(); 
        }
        for(int i=1;i<=n;i++){
            if(!vis[i]){
            a[x]=i;
            vis[i]=1; 
            dfs(x+1);//进入下一层
            vis[i]=0;//防止退回后,同一层的不同情况发生干扰
            //这一步将发生在pr之后,哪怕进入了别的函数,但此刻的i还没变 
        }
        }
    }
    
    int main(){
        cin>>n;
        dfs(1);
        return 0;
    } 
  • 相关阅读:
    移动端注意
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
  • 原文地址:https://www.cnblogs.com/cyfe67373/p/12437203.html
Copyright © 2011-2022 走看看