POJ 2245 Lotto-DFS-(回溯法)
2015-09-09 17:17
429 查看
题意:给定一个长度为k的数列,数列中的每个数都不相同且递增,现在要从数列中选出6个数字,按字典序递增输出所有的选择。(6<k<13)
分析:
看题目要求和k的数据范围就知道是一个dfs回溯法求各种组合。
代码:
分析:
看题目要求和k的数据范围就知道是一个dfs回溯法求各种组合。
代码:
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int k,a[20]; int vis[20]; int ans[20]; void prin() { for(int i=0;i<6;i++){ printf("%d",ans[i]); if(i==5) printf("\n"); else printf(" "); } } void dfs(int x,int cur) { if(cur==6){ prin(); return; } for(int i=x+1;i<k;i++){ vis[i]=1; ans[cur]=a[i]; dfs(i,cur+1); vis[i]=0; } } int main() { int t=1; while(scanf("%d",&k)!=EOF){ if(k==0) break; if(t!=1) printf("\n"); t++; for(int i=0;i<k;i++) scanf("%d",&a[i]); for(int i=0;i<k;i++){ vis[a[i]]=1; ans[0]=a[i]; dfs(i,1); vis[a[i]]=0; } } }
相关文章推荐
- python 发送邮件实例
- 2124:Repair the Wall
- firefox 提示 ssl_error_unsupported_version
- addChildViewController transitionFromViewController nib storyboard
- Android 学习第5课,配置android
- 编译原理的世界
- 0909对操作系统的认识
- maven 插件用法
- 使用GDB出现ImportError: No module named 'libstdcxx' 错误提示的解决方案
- BAE 使用2
- 深入分析 Java 中的中文编码问题
- zeppelin入门使用
- ArrayList源码分析
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
- 2015-0909-osg学习历程8
- volatile关键字解析
- UVA 621 Secret Research
- getRequestURI,getRequestURL的区别
- ios 继承和CateCategory
- SQLSERVER 中在所有表和字段中查找关键字