zoukankan      html  css  js  c++  java
  • AcWing842 排列数字

    题目链接

    给定一个整数n,将数字1~n排成一排,将会有很多种排列方法。

    现在,请你按照字典序将所有的排列方法输出

    样例输入

    3

    样例输出

    1 2 3
    1 3 2
    2 1 3
    2 3 1
    3 1 2
    3 2 1

    思路

    • 全排列问题,这里用回溯的方法实现

    代码

    #include <iostream>
    using namespace std;
    const int N = 8;
    int a[N], vis[N];
    int n;
    
    void dfs(int cur){
        if(cur == n){
            for(int i = 0; i < n; ++i) printf("%d ", a[i]);
            printf("
    ");
            return;
        }
        for(int i = 1; i <= n; ++i){
            if(!vis[i]) {
                vis[i] = 1;
                a[cur] = i; 
                dfs(cur+1);
                vis[i] = 0;
            }
        }
    } 
    
    int main(){
        scanf("%d", &n);
        dfs(0);
    }
    
  • 相关阅读:
    GDUFE ACM-1093
    GDUFE ACM-1088
    GDUFE ACM-1069
    GDUFE ACM-1051
    GDUFE ACM-1049
    GDUFE ACM-1046
    GDUFE ACM-1045
    GDUFE ACM-1043
    OpenCV学习(7.12)
    OpenCV学习(7.11)
  • 原文地址:https://www.cnblogs.com/patrolli/p/12233030.html
Copyright © 2011-2022 走看看