C/C++——排列算法
题目描述:
(排列数)输入两个正整数 𝑛,𝑚(1≤𝑛≤20,1≤𝑚≤𝑛)n,m(1≤n≤20,1≤m≤n),在 1∼𝑛1∼n 中任取 𝑚m 个数,按字典序从小到大输出所有这样的排列。例如:
输入:3 2
输出:1 2 1 3 2 1 2 3 3 1 3 2
题目分析:
偶然间看到这道NOIP 2012提高组初赛的试题,觉得还挺有趣的。之前一直都是做全排列的题,这次看到排列的题还一下子没转过来。其实这道题目可以理解为有n个编号为1~n的小球需要放在m个编号为1~m的盒子里,每个盒子只能放一个小球,让你把所有可能的结果按照字典序从小到大输出。其中n>=m。就是求。