HLG2179 组合(dfs水水更健康)
2015-08-31 20:19
274 查看
组合 | ||||||
| ||||||
Description | ||||||
给出一个正整数N,从集合{1,2,3..N} 中找出所有大小为k的子集, 并按照字典序从小到大输出。 | ||||||
Input | ||||||
第一行是一个整数T,代表T组测试数据。 接下来T行,每行是两个正整数n(1<=n<=10), k(1<=k<=n)。 | ||||||
Output | ||||||
对于每组数据按字典序输出所有符合条件的子集。 | ||||||
Sample Input | ||||||
1 5 3 | ||||||
Sample Output | ||||||
1 2 3 1 2 4 1 2 5 1 3 4 1 3 5 1 4 5 2 3 4 2 3 5 2 4 5 3 4 5 | ||||||
Source | ||||||
2014.11.29新生赛-热身赛 |
#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; int n,k; int ans[50]; bool vis[50]; void dfs(int step,int p){ if(step==k+1){ for(int i=1;i<=step-1;i++){ printf("%d%c",ans[i],i==step-1?'\n':' '); } return ; } for(int i=p;i<=n;i++){ if(!vis[i]){ vis[i]=true; ans[step]=i; dfs(step+1,i+1); vis[i]=false; } } } int main(){ int t; scanf("%d",&t); while(t--){ memset(vis,false,sizeof(vis)); scanf("%d%d",&n,&k); dfs(1,1); } return 0; }
相关文章推荐
- 通过一个date获取年龄
- ios MVC笔记
- gulp
- 利用Hexo搭建个人博客-环境搭建篇
- JDK与JRE的区别
- 海量数据处理一
- HDU1495-非常可乐-BFS
- UITextFielddelegate委托方法注释
- hdu4770 状态压缩+枚举
- LeetCode(47)Permutations II
- Java技术积累——用最原始的代码见证分页查询实现原理
- hust1350Trie【字典树+dfs || 字典树 + LCA】
- LeetCode(47)Permutations II
- Linux编程基础
- Servlet中用于会话跟踪的三种机制
- HDU3722 Card Game(KM最小费用圈覆盖)
- 黄聪:WordPress动作钩子函数add_action()、do_action()源码解析
- linux 文件系统解析及相关命令
- 计算1到100的整数和
- hdu 2899 Strange fuction