组合数--深度优先算法(DFS)的简单实现

2023-11-11

 找出从自然数 1、2、... 、n(0<n<10)中任取 r(0<r≤n)个数的所有组合。

输入格式

n,r

输出格式

每个组合从大到小排序

样例输入:

5 3

样例输出:

543
542
541
532
531
521
432
431
421
321

题目分析:

先定义一个数组来存放排好的数,当num减为0时,输出数组,并结束。当num不为0时,用一个递归,递归从n开始,每递归一次,n-1,往数组存放后num-1,dfs完成后再将num+1,以便重新排序

深度优先这个东西,听起来很难,实际上就是很难哈哈哈,

这一段完全就是凑字数的,因为发文助手说我的文章太短辣

我真的很乌语

我也不知道写些什么

就随便写点把

祝我生活与愉快

还有,

ubuntu这个输入法是真的男用,

好容易大错别字阿啊啊啊

代码如下:

#include<bits/stdc++.h>
using namespace std;
int a[15]={0};
int n,r;

void dfs(int all,int num)
{
	if(num==0)
	{
		for(int i=0;i<r;i++)
		cout<<a[i];
		cout<<endl;
		return;
	}
	for(int i=all;i>=1;i--)
	{
		a[r-num]=i;
		num-=1;
		dfs(i-1,num);
		num+=1;
	}
}
int main()
{
	cin>>n>>r;
	dfs(n,r);
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

组合数--深度优先算法(DFS)的简单实现 的相关文章

随机推荐

  • 深入解析IT专业分类、方向及就业前景:高考毕业生如何选择适合自己的IT专业?重点探索近年来人工智能专业发展及人才需求

    目录 一 IT专业的就业前景和发展趋势 二 了解IT专业的分类和方向 三 你对本专业的看法和感想 四 本专业对人能力素养的要求 五 建议和思考 其它资料下载 当今社会 信息技术行业以其迅猛的发展和无限的潜力成为了吸引无数年轻人的热门选择 特
  • leetcode学习项目

    https leetcode cn com explore learn card data structure binary tree leetcode上专项介绍供学习树 https leetcode cn com explore lear
  • Linux中创建sftp用户并限制目录权限

    注意两点 一是禁止该用户通过ssh登录 二是不需要创建家目录 家目录简单来说 就是在 home下的用户命令 默认每个用户在 home中都是有与用户名一样的文件夹 创建组 groupadd sftp 创建用户 useradd g sftp s
  • 作为计算机专业学生,最应该学习的课程前五位是什么?【知乎】

    http www zhihu com question 19628851 answer 100293 对于目前排在首位的兵哥哥的答案 不敢苟同 本人软件工程专业 关于计算机专业和软件工程专业 实际上还是大相径庭的 远不是别人所说的软硬件的偏
  • Economic Difficulties【DP】【Codeforces 1263 F】

    Codeforces Round 603 Div 2 F 题意 给你两棵树 结点分别是1 A与1 B 然后给了N台设备 并且A树和B树的叶子结点都是链接设备的 问的是 我们最多可以割几条边使得每个设备都能链接A树或者B树上任意的一个 1 号
  • 检测鼠标位置是否有UI

    示例 using System using System Collections Generic using UnityEngine using UnityEngine EventSystems using UnityEngine UI p
  • 【编译原理】课程一:编译原理入门

    目录 1 为什么要学习编译原理 2 什么是编译原理 3 编译与计算机程序设计语言的关系 3 1 程序设计语言的转换方式 3 2 编译的转换过程 3 3 编译器在语言处理系统中的位置 3 4 编译系统的结构 3 4 1 词法分析 扫描 3 4
  • unity3D僵尸模型和场景带动作,unity游戏素材

    unity3D僵尸模型和场景带动作 详情如下动态图所示 资源链接在文末 点我下载资源 https download csdn net download weixin 43474701 55001671
  • IMX6ULL驱动学习--Linux自带LED驱动

    Linux自带LED驱动 Linux内核LED驱动 内核使能LED驱动 LED驱动源码分析 设备树节点编写 设备树LED节点 设备操作 Linux内核LED驱动 Linux 内核集成了LED驱动 采用platform框架 我们只需要在编译内
  • Centos7-安装keepalived

    1 到keepalived官网下载 Keepalived for Linux 2 使用xftp上传到 usr local packages目录下 3 解压上传的tar gz压缩文件 cd usr local packages tar zxv
  • 西安电子科技大学计算智能导论公茂果老师课程所有PPT

    西安电子科技大学计算智能导论公茂果老师课程所有PPT http pan baidu com s 1hqst8pe 随着信息技术的发展 计算的观念越来越显示其在各个领域的威力 从计算的角度审视世界 认为从物理世界 生命过程直到人类智能都是可计
  • sqlserver ssms 安装失败拒绝访问(0x80070005)

    今天安装了SQL Server Management Studio 安装的时候提示 安装失败 拒绝访问 0x80070005 果断将电脑重启 重启之后重新安装还是不行 解决方法 我们将杀毒软件关闭 我的是360 然后我们再安装一下SQL S
  • linux 基础(一)

    1 Linux常见发行版 Linux发行版有三大主流分支 Debian Slackware Redhat 包含的主要发行版分别如下 Debian Ubuntu Linux mint Knopix Slackware S u S E SLES
  • 机器学习之单变量线性回归

    1 线性回归基础概念 回归模型 regression model 数据集 包含feature 输入变量 和与之对应的target 输出变量 训练集 training set 输入数据 x feature or input feature 输
  • esp8266一键安装arduino_ESP8266如何获取B站粉丝数、关注数和播放量?

    硬件 ESP8266 12板 0 96 IIC驱动OLED一个 杜邦线4根 1 获取API接口 打开B站个人中心 按下F12 刷新页面 搜索这个词 https api bilibili com x relation stat vmid 40
  • 进程、线程、协程

    一 名词概念 1 什么是进程 what is process 进程是操作系统提供的抽象概念 是系统进行资源分配和调度的基本单位 是操作系统结构的基础 程序是指令 数据及其组织形式的描述 进程是程序的实体 程序本身是没有生命周期的 它只是存在
  • 系统稳定性方法论 - 降发生

    上一篇 lt 系统稳定性方法论 序篇 gt 中提到了系统稳定性的4大抓手 今天就先说说其中的第一个 降发生 何为 降发生 降发生指的是 从设计阶段开始 开发阶段 测试阶段 上线前的准备阶段 上线阶段到最后上线后的回归测试阶段 在这整个过程中
  • 微信云托管-填坑之旅

    微信云开发开始收费了 一个月20块钱 贼贵 用不起 而按用量收费 资源还能复用的兄弟产品微信云托管还像还行 所以就有了一场填坑旅行 windows10下安装docker之坑 在本地开发 需要使用docker 但是下载 安装docker后 大
  • less查看日志常用命令

    在Linux系统中 使用less命令可以查看日志文件 下面是一些常用的less命令 less filename 查看指定文件的内容 pattern 搜索包含指定模式的文本 可以使用向上或向下箭头浏览搜索结果 n 在搜索结果中跳转到下一个匹配
  • 组合数--深度优先算法(DFS)的简单实现

    找出从自然数 1 2 n 0