zoukankan      html  css  js  c++  java
  • nyoj 19擅长排列的小明 (DFS)

    擅长排列的小明

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:4
     
    描述
    小明十分聪明,而且十分擅长排列计算。比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想为难他,在这5个数字中选出几个数字让他继续全排列,那么你就错了,他同样的很擅长。现在需要你写一个程序来验证擅长排列的小明到底对不对。
     
    输入
    第一行输入整数N(1<N<10)表示多少组测试数据,
    每组测试数据第一行两个整数 n m (1<n<9,0<m<=n)
    输出
    在1-n中选取m个字符进行全排列,按字典序全部输出,每种排列占一行,每组数据间不需分界。如样例
    样例输入

    2

    3  1

    4  2

    样例输出

    1

    2

    3

    12

    13

    14

    21

    23

    24

    31

    32

    34

    41

    42

    43

    #include<cstdio>
    int a[10], n;
    bool vis[10];
    void dfs(int m, int q)
    {
        for(int i=1; i<=n; i++)
        {
            if(!vis[i]) a[m] = i;
            else continue;
            vis[i] = 1;
            if(m>1)
            dfs(m-1, q);
            else
            {
                for(int j=q; j>0; j--)
                printf("%d", a[j]);
                printf("
    ");
            }
            vis[i] = 0;
        }
    }
    
    int main()
    {
        int T, m;
        scanf("%d", &T);
        while(T--)
        {
            scanf("%d%d", &n, &m);
            dfs(m, m);
        }
        return 0;
    }
  • 相关阅读:
    C++处理Json串——jsoncpp库
    古典文学--本经阴符七术
    古典文学--素书
    网络编程之getaddrinfo
    网络编程之addrinfo
    跳表数据结构
    MySQL 编译安装并且开启DEBUG模式
    volatile关键字详解
    istringstream、ostringstream、stringstream 类简介
    Selenium入门21 Select操作
  • 原文地址:https://www.cnblogs.com/acm1314/p/4742265.html
Copyright © 2011-2022 走看看