文章出處

擅長排列的小明

時間限制: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("\n");
        }
        vis[i] = 0;
    }
}

int main()
{
    int T, m;
    scanf("%d", &T);
    while(T--)
    {
        scanf("%d%d", &n, &m);
        dfs(m, m);
    }
    return 0;
}

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()