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("
    ");
        }
    }
  • 相关阅读:
    需要union
    with语法,需要递归的面试题目
    聚合主分类,子查询获得子分类
    泛型
    RepeaterInMVC
    需要自己创建集合的题目
    Ollydbg入门
    svn服务器架设
    http与svn架设服务器
    svn错误信息一览表
  • 原文地址:https://www.cnblogs.com/liumengyue/p/5203951.html
Copyright © 2011-2022 走看看