问题 B: 【递归入门】组合的输出

[命题人 : 外部导入]

时间限制 : 1.000 sec  内存限制 : 128 MB

解决: 1303提交: 2294统计

题目描述

排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r < = n),我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数。
现要求你不用递归的方法输出所有组合。
例如n = 5 ,r = 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

输入

一行两个自然数n、r ( 1 < n < 21,1 < = r < = n )。

输出

所有的组合,每一个组合占一行且其中的元素按由小到大的顺序排列,所有的组合也按字典顺序。

提交

提示:

每次进入递归,遍历比a[index-1]大的数,index为递归层数。

AC代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<vector>
#include<map>
#include<cctype>
#include<set>
#include<queue>
#include<stack>
using namespace std;
int n,r;
int flag[30]= {0};
int ans[30];
void dg(int index)
{if(index==r+1){printf("%d",ans[1]);for(int i=2; i<=r; i++)printf(" %d",ans[i]);printf("\n");return ;}for(int i=ans[index-1]+1; i<=n; i++){if(flag[i]==0){ans[index]=i;flag[i]=1;dg(index+1);flag[i]=0;}}
}
int main()
{scanf("%d %d",&n,&r);dg(1);return 0;
}

【递归入门】组合的输出相关推荐

  1. 信息学奥赛一本通(1317:【例5.2】组合的输出)

    1317:[例5.2]组合的输出 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 21154     通过数: 10292 [题目描述] 排列与组合是常用的数学方法 ...

  2. 1006: 组合的输出(dfs的一种用法)(与排列类似)

    题目:1006: 组合的输出 Description 排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r<=n),我们可以简单地将n个元素理解为自然数1,2,-,n, ...

  3. 【例5.2】组合的输出

    [例5.2]组合的输出 链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1317 时间限制: 1000 ms         内存限制: 65536 ...

  4. java:P1157 组合的输出

    洛谷题目:P1157 组合的输出 题目如下: 我的代码: import java.io.*; /* 思路:dfs思想,其中改进下即可,这样就能够得到不重复的组合. 递归代码提醒:t代表当前函数找第几个 ...

  5. 5978 Problem F 【递归入门】走迷宫

    问题 F: [递归入门]走迷宫 时间限制: 1 Sec 内存限制: 128 MB 提交: 128 解决: 46 题目描述 有一个n*m格的迷宫(表示有n行.m列),其中有可走的也有不可走的,如果用1表 ...

  6. Python 入门之格式化输出

    Python 入门之格式化输出 1.格式化 (1)%为占位 (2)%s - 站字符串的位置(数字.字符串都能够进行填充) 学习python中有什么不懂的地方,小编这里推荐加小编的python学习群:8 ...

  7. 递归入门 斐波那契数列

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! < ...

  8. 【入门】倒序输出一个四位整数

    [入门]倒序输出一个四位整数 题目解释: 这道题题目描述非常明了, 就是倒序输出一个四位数. 题目思路: 这道题可以用两种方法: 用数学上的div和mod截出各个位上的数,再计算: 也可以用字符串倒叙 ...

  9. 写一个26字母和0-9数字 不同长度组合的输出

    写一个26字母和0-9数字 不同长度组合的输出,输出全部的时间不能超过2个小时.需要用多线程录 直接上代码 Password类 package com.more.util; import java.u ...

  10. 3.1递归实现逆序输出整数

    1 递归实现逆序输出整数 (20分) 本题目要求读入1个正整数n,然后编写递归函数reverse(int n)实现将该正整数逆序输出. 输入格式: 输入在一行中给出1个正整数n. 输出格式: 对每一组 ...

最新文章

  1. 超强实操!手把手教学Kinect深度图与RGB摄像头的标定与配准
  2. php怎么删除多条,php 用checkbox一次性删除多条记录的方法
  3. 通知 | “大数据能力提升项目”证书办理及领取(2021年秋季学期)
  4. ele表格操作区根据数据_Vue数据绑定
  5. python 无法引用 tensorflow.keras_win10+anaconda安装tensorflow和keras遇到的坑小结
  6. CreateThread和_beginthread的区别
  7. linux中的定时器检测按键,STM32单片机利用定时器实现按键采集
  8. .NET Framework是什么
  9. pandas 处理 csv
  10. 返回表单字符串php,PHP字符串如何截取表单内的内容?
  11. 斐讯K2P B1 博通TTL刷机方法
  12. Vim使用全指南 (环境配置,插件推荐,美化) (C++,Python,MarkDown,R...)
  13. 适当修改LIO-SAM_based_relocalization解决初始重定位显示错误
  14. 论文阅读:ThinLTO: Scalable and Incremental LTO
  15. ORACLE 10 g的 merge into 用法
  16. 计算机美化标题教案,计算机基础教案标题.doc
  17. 高德地图手机端定位偏移问题
  18. IDEA支持VUE的做法
  19. Richard Feynman, 挑战者号, 软件工程
  20. Cadence IC设计环境搭建( IC617+MMSIM151+Calibre2015)

热门文章

  1. 分享个自己Python爬虫时的浏览器标识库
  2. 庞贝古城千年废墟复活:VR模型与眼动追踪复现被火山灰掩埋的建筑
  3. Redis 如何实现库存扣减操作和防止被超卖?(荣耀典藏版)
  4. 55400-73-2,Ms-PEG5-Ms含有两个甲磺酸基部分的PEG连接物
  5. html如何实现雪花飘落,如何使用HTML5 canvas实现雪花飘落
  6. SOME/IP开源库Vsomeip分析
  7. 学了那么久爬虫,快来看看这些反爬,你能攻破多少?【对应看看自己修炼到了哪个等级~】
  8. VC6中如何让改变控件Botton的字体(大小和字体)
  9. tc7102路由器虚拟服务器,国内电信推首款WiFi 6+路由器TC7102,5G和WiFi 6成黄金搭档-贤集网...
  10. 西游记中荆棘岭五个树精