http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=32    

              组合数

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
 
描述
找出从自然数1、2、... 、n(0<n<10)中任取r(0<r<=n)个数的所有组合。
 
输入
输入n、r。
输出
按特定顺序输出所有组合。
特定顺序:每一个组合中的值从大到小排列,组合之间按逆字典序排列。
样例输入
5 3
样例输出
543
542
541
532
531
521
432
431
421
321
来源
[苗栋栋]原创
上传者
苗栋栋
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <set>
using namespace std;
int n, r;
set <int> myset; //存放组合数
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; void dfs(int i, int sum, int len){ //i:当前数字, sum: 当前组合数,len: 当前组合数的位数
if(len > r || i < 1)
return ;
if(len == r){
if(myset.count(sum) == 0){
myset.insert(sum);
}
return ;
}
dfs(i - 1, sum * 10 + a[i - 1], len + 1);
dfs(i - 1, sum, len);
} int main(){ while(cin >> n >> r){
for(int i = n; i >= 1; i--){ //又高位枚举
dfs(i, i, 1);
}
set<int>::iterator it;
for(it = --myset.end(); it != myset.begin(); --it) //set已经自动由小到大排序,所以逆序输出
cout << *it << endl; //end()为最后一位的下一位,另外begin()为读出就跳出
cout << *it << endl; //输出最后一个
myset.clear(); //清空
} return 0;
}

  

28-组合数(dfs)的更多相关文章

  1. 图的深度优先遍历算法(DFS)

    搜索算法有很多种,本次文章主要分享图(无向图)的深度优先算法.深度优先算法(DFS)主要是应用于搜索中,早期是在爬虫中使用.其主要的思想有如下: 1.先访问一个节点v,然后标记为已被访问过2.找到第一 ...

  2. 牛客的两道dfs

    1.传送门:牛客13594-选择困难症 题意:给你k类物品,每类物品有a[i]个每个物品都有一个value,每类物品最多选一个,要求有多少种选法使得总value>m(没要求每类物品都必须选) 题 ...

  3. Hadoop运维操作

    1.      处理hadoop的namenode宕机 处理措施: 进入hadoop的bin目录,重启namenode服务 操作命令: cd path/to/hadoop/bin ./hadoop-d ...

  4. 分布式计算(一)Ubuntu搭建Hadoop分布式集群

    最近准备接触分布式计算,学习分布式计算的技术栈和架构知识.目前的分布式计算方式大致分为两种:离线计算和实时计算.在大数据全家桶中,离线计算的优秀工具当属Hadoop和Spark,而实时计算的杰出代表非 ...

  5. Hadoop运维手记

    1.处理hadoop的namenode宕机 处理措施:进入hadoop的bin目录,重启namenode服务 操作命令:cd path/to/hadoop/bin ./hadoop-daemon.sh ...

  6. hadoop学习笔记之-hbase完全分布模…

    安装环境: OS: Oracle linux 5.6 JDK: jdk1.6.0_18 Hadoop: hadoop-0.20.2 Hbase: hbase-0.90.5 安装准备: 1. Jdk环境 ...

  7. 手把手教你安装Hbase,一次成功!

    安装环境: OS: Centos 6.5 JDK: jdk1.6.0_18 Hadoop: hadoop-0.20.2 Hbase: hbase-0.90.5 安装准备: 1.       Jdk环境 ...

  8. 多个线程运行MR程序时hadoop出现的问题

    夜间多个任务同时并行,总有几个随机性有任务失败,查看日志: cat -n ads_channel.log |grep "Caused by" Caused by: java.uti ...

  9. 洛谷P3018 [USACO11MAR]树装饰Tree Decoration

    洛谷P3018 [USACO11MAR]树装饰Tree Decoration树形DP 因为要求最小,我们就贪心地用每个子树中的最小cost来支付就行了 #include <bits/stdc++ ...

  10. Luogu P3757 [CQOI2017]老C的键盘

    题目描述 老C的键盘 题解 显然对于每个数 x 都有唯一对应的 \(x/2\) , 然而对于每个数 x 却可以成为 \(x*2\) 和 \(x*2+1\) 的对应数 根据这一特性想到了啥??? 感谢l ...

随机推荐

  1. bzoj 1927 [Sdoi2010]星际竞速——网络流

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1927 每个点拆点保证只经过一次. 主要是如果经过了这个点,这个点应该向汇点流过去表示经过了它 ...

  2. zookeeper事件监听

    原来有两张表,一张是公司的,一张的产品的,项目中用来查询,不需要增删改.现在增删改交给另一项目去维护,由他们变更时同步数据到zk,我们去取.很明显,这里需要一个监听器,每次他项目发起数据变更时,我方必 ...

  3. CRC全套~~~ 转载

    经测试CRC16-CCITT是可以了,其它暂时没有测试哦. 00 0E 00 01 00 01 20 17 12 26 20 19 16 01 00 00 01 01 00 00 00 00 00 0 ...

  4. PHp引用,函数引用,对象引用(初学者必看)

    转自:http://blog.sina.com.cn/s/blog_948254830100vs2e.html 收集整理: 第 二 教 育 资 源 网 在PHP 中引用的意思是:不同的名字访问同一个变 ...

  5. 第六章 通过Service访问Pod(下)

    6.4 外网如何访问service (1)ClusterIp: Service通过Cluster内部的IP对外提供服务,只有Cluster内的节点和Pod可以访问,这是默认的Service类型. (2 ...

  6. Hibernate 一对一、一对多、多对多注解mappedBy属性的总结

    mappedBy: 所填内容必为本类在另一方的字段名. 表示:本类放弃控制关联关系,所有对关联关系的控制,如:建立.解除与另一方的关系,都由对方控制,本类不管.举个例子: Teacher和Studen ...

  7. Centos下Apache+Tomcat集群--搭建记录

    一.目的 利用apache的mod_jk模块,实现tomcat集群服务器的负载均衡以及会话复制,这里用到了<Cluster>. 二.环境 1.基础:3台主机,系统Centos6.5,4G内 ...

  8. linux网络监视器

    vnstat iftop nethogs dig ipcalc

  9. Rhythmk 一步一步学 JAVA (15) mybatis 入门学习-1

    1.mybatis 通过mybatis-generator-core-1.3.2 代码生成: 工具下载地址: https://code.google.com/p/mybatis/ 解压工具包 myba ...

  10. 微信小程序从入坑到放弃之坑十二:navigator无法跳转的坑

    转自:http://www.yilingsj.com/xwzj/2018-11-25/weixin-miniprogram-navigator.html 微信小程序中的页面跳转用navigator就行 ...