DFS 输出从n个数中选m个数的全部情况

2023-10-29

#include<bits/stdc++.h>
using namespace std;

int vis[10], n = 4, m = 3;

void dfs (int x, int sum) {
	if (x > n) return ; // 不是 x>=n!!! // 因为x=n说明轮到了选或不选第n个数,但是没判断此时sum的值  // 还有一种办法是将该语句放在if(sum == m)判断后
	if (sum == m) {
		for (int i = 0;i < n;i ++) 
			if (vis[i]) 
				cout << i << ' ';
		cout << endl;
		return ;
	}
	
	vis[x] = 1;
	dfs (x+1, sum + 1); 
	vis[x] = 0;
	dfs (x+1, sum);
}

int main()
{
	dfs (0, 0);	
	// 0~n-1
	// 从 n 个数中选 m 个数的全部情况。罗列出C(n,m)的全部情况 
	// 使用情形:比较暴力,枚举全部的可能。 

	return 0;
}

整体思路是对于第x个数选还是不选。

这是一个暴力模板,这个与全排列的区别在于,全排列是区分顺序的,而该模板对于选出的m个数是不区分顺序的。

因此,确定方案数的题(蓝桥杯)只有四种可能:

  • 普通多层循环
  • DFS 暴力枚举
  • 全排列(next_permutation)
  • 动态规划
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DFS 输出从n个数中选m个数的全部情况 的相关文章

随机推荐

  • Android学习笔记(五)--(可调节)模糊效果

    很多时候点开一个button的时候或者弹出某个提示的时候 背景都会变成模糊的或者说是虚化的 而今天 我们就来实现一下动态模糊效果 可以通过控制条或者手势来操控模糊程度 之前自己也做了一个 但是发现会有卡顿 在论坛逛了一会儿就发现果然有一个巧
  • 我的2020工作与学习总结

    我的2020总结 今天是2020年12月30日 马上就要开始新的一年了 在出差途中简单做个总结 总结我2020这平凡而又充实的一年 学习和生活方面 回忆起我去年做的总结我的2019 这两年都是收获满满 我19年大学毕业 其实目前我已经工作两
  • app客户端与服务器数据交互时—数据加密

    总结 1 对称加密加密与解密使用的是同样的密钥 所以速度快 但由于需要将密钥在网络传输 所以安全性不高 2 非对称加密使用了一对密钥 公钥与私钥 所以安全性高 但加密与解密速度慢 3 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密
  • vue json对象转数组_vue-vue-router 快速了解,多看看能扎实基础

    看着这么多房子头都晕了 不知道从哪里回家 概述 vue router是Vue js官方的路由插件 它和vue js是深度集成的 适合用于构建单页面应用 vue的单页面应用是基于路由和组件的 路由用于设定访问路径 并将路径和组件映射起来 传统
  • 03模板学习之函数模板案例-写一个int,char通用的冒泡

    03模板学习之函数模板案例 写一个int char通用的冒泡 1 直接看代码 模板测试 cpp 此文件包含 main 函数 程序执行将在此处开始并结束 include
  • windows terminal使用git bash

    1 在微软应用商店下载 windows terminal 1 打开 Windows Terminnal 的设置界面 点击添加新配置文件添加配置如下 即在json配置文件中添加 commandline D Git bin bash exe l
  • ChatGPT的前世今生

    作者 符尧等 编辑 夕小瑶的卖萌屋 点击下方卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 全栈算法 技术交流群 正文 最近 OpenAI的预训练模型ChatGPT给人工智能领域的研究人员留下了深刻的印
  • java中需要注意的一些代码编写规范

    一 编程规约 1 命名风格 常量命名全部大写 单词间用下划线隔开 力求语义表达完整清楚 不要嫌名字长 POJO 类中的任何布尔类型的变量 都不要加 is 前缀 否则部分框架解析会引起序列化错误 杜绝完全不规范的缩写 避免望文不知义 在常量与
  • 13.按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩

    题目的数据来源于50道SQL练习题及参考答案 原创 Hill GM的博客 CSDN博客 sql编程题目 建表和链接里面的是一样的 解决的思路 首先将每个学生的各科成绩放在同一行显示 select st sc1 score 语文 sc2 sc
  • vue3中使用echarts的子组件接收父级传来参数,并重新渲染 +++watch监听的用法

    1 父组件页面
  • java小说摸鱼

    import org jsoup Jsoup import org jsoup nodes Document import org jsoup nodes Element import java net HttpURLConnection
  • vs编译linux内核,VSCode远程开发Linux内核驱动

    受够了Vim的换台电脑就要倒腾N天配置的折磨 受够了Windows下Source Insight眼花的界面 这些软件虽然很多人在用 但是缺点也不少 然而Linux内核代码非常庞大 编译内核又需要在Linux下进行 有没有一种能在Window
  • TCL字符串操作

    format命令 因为 TCL 把所有的输入都当作字符串看待 所以 TCL 提供了较强的字符串操作功能 TCL 中与 字符串操作有关的命令有 string format regexp regsub scan 等 语法 format form
  • 【python】《多媒体技术与应用》实验报告「数字图像压缩」「傅里叶变换」

    多媒体技术与应用 实验报告 实验名称 实验二 数字图像压缩 实验时间 2022 4 11 姓名 班级 计非201 学号 成绩 实验目的 理解图像压缩的主要原则和目的 理解有损和无损压缩的概念 了解几种常用的图像压缩编码方法 利用 Pytho
  • Docker以Root启动的各种方法

    docker run itd user root name root user alpine sh docker run itd user 0 name root user2 alpine sh docker run itd name ro
  • Android Studio之maven Central,JCenter

    Android studio 是从哪里得到库的 Android Studio是从build gradle里面定义的Maven 仓库服务器上下载library的 Apache Maven是Apache开发的一个工具 提供了用于贡献librar
  • 基于QT实现的钢琴软件 (MFC大作业)

    作品内容 基于Qt平台开发的一款钢琴模拟器 主要完成了对钢琴的全键全音调模拟 使用者可以在电脑上通过28个键完成钢琴曲的演奏 另外 我们还添加了延音 变调 录音 播放 教程等功能 旨在为用户提供完整的电脑钢琴体验 软件外观 实现思路 整体框
  • 联想电脑进入bios

    联想电脑进入bios 开机LOGO闪现界面提供了进入BIOS的按钮提示 1 Think centre bios 先单机enter 再按F1 2 笔记本 DEL 或者 F2 3 THINKPAD 先ESC键后 F1进入 4 F12进入启动项快
  • html 获取sessionid,h5中sessionStorage.sessionId获取到的是服务器端session的id吗?

    前端的 SessionStorage 请类比 LocalStorage 设计的初衷就是 cookie 容量太小 前端需要一个更大的地方在浏览器端放置一些临时 永久数据 整个 storage 可以达到 5MB 所以当然不能每次都往服务器发送
  • DFS 输出从n个数中选m个数的全部情况

    include