zoukankan      html  css  js  c++  java
  • 【CodeVS1294】全排列

    Description

    给出一个n, 请输出n的所有全排列

    Input

    读入仅一个整数n   (1<=n<=10)

    Output

    一共n!行,每行n个用空格隔开的数,表示n的一个全排列。并且按全排列的字典序输出。

    Sample Input

    3

    Sample Output

    1 2 3

    1 3 2

    2 1 3

    2 3 1

    3 1 2

    3 2 1

    题解

    搜索

    #include<cstdio>
    using namespace std;
    int a[11];
    bool vis[11];
    int n;
    void print()
    {
        for (int i=1;i<=n;i++) printf("%d ",a[i]);
        printf("
    ");
    }
    void dfs(int x,int cnt)
    {
        vis[x] = true;
        a[cnt] = x;
        if (cnt == n) print();
        for (int i=1;i<=n;i++)
            if (!vis[i])
                dfs(i,cnt+1);
        vis[x] = false;
    }
    int main()
    {
        scanf("%d",&n);
        for (int i=1;i<=n;i++) dfs(i,1);
    }

    STL

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    int a[20];
    int n;
    int main(){
        scanf("%d",&n);
        for (int i=1;i<=n;i++) a[i]=i,printf("%d ",i);printf("
    ");
        while(next_permutation(a+1,a+n+1)){
            for (int i=1;i<=n;i++) printf("%d ",a[i]);
            printf("
    ");
        }
    }
  • 相关阅读:
    小批量随机梯度下降
    查询文档
    自动求梯度
    数据操作
    Hadoop 入门
    Matplotlib 二维图像绘制方法
    Pandas 数据处理基础
    NumPy 数值计算基础课程
    关于 Shell 脚本
    语法分析
  • 原文地址:https://www.cnblogs.com/liumengyue/p/5203951.html
Copyright © 2011-2022 走看看