hpuoj 1690 组合数【DFS】
2015-08-08 17:20
204 查看
问题 C: 组合数
时间限制: 3 Sec 内存限制: 128 MB提交: 47 解决: 21
[提交][状态][讨论版]
题目描述
czy最近对组合数产生了浓厚的兴趣,一天他心血来潮,想排n个数字,但是很快他发现种类太多了,于是他决定从中随机找出m个数排,但还是太多了,所以他想请聪明的你写个程序帮助他找到所有种类的排列输入
输入包括多组测试数据,每组包括一行整数n(1<=n<10),m(1<=m<=n),空格间隔输出
按特定顺序输出所有组合。特定顺序:每一个组合中的值从大到小排列,组合之间按逆字典序排列。
样例输入
5 3
样例输出
543 542 541 532 531 521 432 431 421 321
汗,关键时刻掉链子。黄会长讲的方法忘了,无奈换一种
#include<cstdio> #include<cstring> int a[15],arr[15]; int n,m; void dfs(int pos,int tot) { if(tot>=m) { for(int i=0;i<m;++i) printf("%d",a[i]); printf("\n"); return ; } if(n-pos<m-tot) return ; for(int i=pos;i<n;++i) { a[tot]=arr[i]; dfs(i+1,tot+1); } } int main() { while(~scanf("%d %d",&n,&m)) { memset(arr,0,sizeof(arr)); memset(a,0,sizeof(a)); for(int i=0;i<n;++i) arr[i]=n-i; dfs(0,0); } return 0; }
[/code]
相关文章推荐
- 大数阶乘
- matlab画神经网络的结构 neural network
- POJ C程序设计进阶 编程题#1:计算矩阵边缘之和
- lua lpeg
- zoj3644
- 矩阵的四次方
- MYSQL中的my.cnf中文说明
- A Mathematical Curiosity 水
- Java串口通信 ----> 扫描标签获取数据存入数据库
- 微信服务号如何认证
- 杭电1711Number Sequence
- 如何创建Oracle数据库
- 杨辉三角打印
- const常量与#define宏
- HDU The Number Off of FFF (周赛1)
- POJ 1816 Wild Words(字典树+dfs)
- 一道签到题
- 明明的随机数
- leetcode--WildcardMatching
- WebLogic、WebSphere、JBOSS、Tomcat之间的区别