当前位置: 首页 > news >正文

【题解-洛谷】B3622 枚举子集(递归实现指数型枚举)

题目:B3622 枚举子集(递归实现指数型枚举)

题目描述

今有 n n n 位同学,可以从中选出任意名同学参加合唱。

请输出所有可能的选择方案。

输入格式

仅一行,一个正整数 n n n

输出格式

若干行,每行表示一个选择方案。

每一种选择方案用一个字符串表示,其中第 i i i 位为 Y 则表示第 i i i 名同学参加合唱;为 N 则表示不参加。

需要以字典序输出答案。

输入输出样例 #1

输入 #1

3

输出 #1

NNN
NNY
NYN
NYY
YNN
YNY
YYN
YYY

说明/提示

对于 100 % 100\% 100% 的数据,保证 1 ≤ n ≤ 10 1\leq n\leq 10 1n10

代码

#include<iostream>using namespace std;const int Maxn = 10 + 10;int n, vis[Maxn];void dfs(int pos){if(pos == n){for(int i = 0; i < n; i ++){if(vis[i]){cout << "Y";}else{cout << "N";}}puts("");return;}dfs(pos + 1); // 该位置不参加vis[pos] = 1;dfs(pos + 1); // 该位置参加vis[pos] = 0;
}int main(){cin >> n;dfs(0);return 0;
}

结果

在这里插入图片描述
在这里插入图片描述

相关文章:

  • 并发编程实战(生产者消费者模型)
  • 构建智能对话式BI的关键:ChatBI场景下的Agent框架选型深
  • 电脑商城--用户注册登录
  • Object.assign() 和扩展运算符(...)
  • 汇编语言学习(三)——DoxBox中debug的使用
  • Golang基础学习
  • 关于GitHub action云编译openwrt
  • 【深度学习-Day 24】过拟合与欠拟合:深入解析模型泛化能力的核心挑战
  • 功能安全实战系列09-英飞凌TC3xx LBIST开发详解
  • 【评测】用Flux的图片文本修改的PS效果
  • JDK21深度解密 Day 14:生产环境监控与排错
  • 算法训练第十天
  • Linux 下关于 ioremap 系列接口
  • 如何判断指针是否需要释放?
  • Cell-o1:强化学习训练LLM解决单细胞推理问题
  • FPGA 可重构技术的实现方法
  • 分享两个日常办公软件:uTools、PixPin
  • 好未来0520上机考试题2:有效三角形的个数
  • 【大模型原理与技术-毛玉仁】第五章 模型编辑
  • 并行硬件环境及并行编程
  • 网站开发的软件有哪些/手机制作网页用什么软件
  • 在线网站建设哪家好/如何制作付费视频网站
  • 绍兴专业做网站的公司/独立网站怎么做
  • 网站开发 毕业答辩ppt/聊城seo优化
  • 给公司做网站/百度搜不干净的东西
  • 上海网站建设企/seo基础教程