caioj1032:递归2(组合)
来源:互联网 发布:windows10安装apache 编辑:程序博客网 时间:2024/06/05 09:09
【闲话】弄懂全排列之后这题就很简单了 emmm因为后面输出的只会比前面的大所以不用不停穿衣服脱衣服blabla(字典序 1 2 3与1 3 2是同一个组合) 主要要弄懂i+r-k<=n即r-k<=n-i 然后老师说的剪枝比网站上1到n循环会快很多 √
【题意】
组合就是从n个元素中抽出r个元素(不分顺序且r < = n),
我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数。
【输入格式】
一行两个自然数n、r ( 1 < n < 21,1 < = r < = n )。
【输出格式】
所有的组合,每一个组合占一行且其中的元素按由小到大的顺序排列,所有的组合也按字典顺序。
【样例输入】
5 3
【样例输出】
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
【代码】
#include<cstdio>using namespace std;int n,r,a[25];void dfs(int k){if(k==r+1){for(int i=1;i<=r;i++) i<r?printf("%d ",a[i]):printf("%d\n",a[i]);}else for(int i=a[k-1]+1;i+r-k<=n;i++){ a[k]=i;dfs(k+1);} }int main(){scanf("%d%d",&n,&r);dfs(1);return 0;}
阅读全文
0 0
- caioj1032:递归2(组合)
- caioj1032· 递归2(组合)
- 1032: 递归2(组合)
- 组合(非递归)
- 组合输出(非递归)
- 递归----组合
- 递归组合
- 递归实现数字的组合(C++)
- 不重复组合算法。(递归)
- 数的组合问题(递归)
- 数字序列全组合(递归)
- NYOJ-32组合数(递归实现)
- caioj1033:递归3(组合+判断素数)
- 1033: 递归3(组合+判断素数)
- 递归与组合
- 递归之组合
- 全组合 递归算法~
- ////////////////递归求组合算法//////////////
- LVS(一)
- maven基础之新建项目
- BAT脚本编写教程
- 【unity学习笔记】unity实现钩子功能
- jvm_方法区溢出(PermGen Space)
- caioj1032:递归2(组合)
- Python 运算符
- Mysql系列——数据库设计(1)——关系型数据库使用情景
- 面向对象中多态和泛型的关系(可以解释为什么说 iterator方法中有多态存在 )
- c++11 中的右值引用、 move 、 forward
- hdu1012 u Calculate e
- iOS 视频录制、播放,使用视听媒体框架AVFoundation实现视频录制播放 —— HERO博客
- 第七章 windows下部署scrapy 本地
- LR算法(基础及核心概念)