C/C++——排列算法

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。就是求A_{n}^{m}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值