输入一个数n,输出集合0,1,2,3,n-1的全部子集

方法一:增量构造法:

#include <iostream>

using namespace std;

void print_subset(int n,int *A,int cur){

for(int i=0;i<cur;i++)

cout<<A[i]<<" ";

cout<<endl;

int s=cur?A[cur-1]+1:0;

for(int i=s;i<n;i++){

A[cur]=i;

print_subset(n,A,cur+1);

}

}

int main(){

cout<<"请输入一个数,输出集合0,1,2,3,n-1的全部子集\n";

int n,cur=0;

cin>>n;

int A[100];

print_subset(n,A,cur);

}

方法二:位向量法

#include <iostream>

using namespace std;

void print_subset(int n,int *A,int cur){

if(cur==n){

for(int i=0;i<cur;i++)

if(A[i])cout<<i<<" ";

cout<<endl;

return;

}

A[cur]=1;

print_subset(n,A,cur+1);

A[cur]=0;

print_subset(n,A,cur+1);

}

int main(){

cout<<"请输入一个数,输出集合0,1,2,3,n-1的全部子集\n";

int n,cur=0;

cin>>n;

int A[100];

print_subset(n,A,cur);

}

二进制法

#include <iostream>

using namespace std;

void print_subset(int n,int s){

for(int i=0;i<n;i++)

if(s&(1<<i)) cout<<i;

cout<<endl;

}

int main(){

cout<<"请输入一个数,输出集合0,1,2,3,n-1的全部子集\n";

int n;

cin>>n;

for(int i=0;i<(1<<n);i++)

print_subset(n,i);

}

算法竞赛入门经典读书笔记(四)7.3子集生成相关推荐

  1. 算法竞赛入门经典读书笔记(三)7.2枚举排列

    7.2.1生成1~n的所有排列 递归调用的方法可以实现. [cpp] view plaincopy #include <iostream> using namespace std; voi ...

  2. 算法竞赛入门经典读书笔记(二)7.1简单枚举

    7.1.1简单枚举 除法 输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为数字0~9的一个排列,2<=n<=79. 样例输入: 62 样例输出 ...

  3. c语言 如果 n 是素数,且 n+2 也是素数,则称为孪生素数.,算法竞赛入门经典: 第四章 函数与递归 4.3孪生素数...

    /* 孪生素数: 如果n和n+2都是素数,则称他们是孪生素数.输入m,输出两个数均不超过m的最大孪生素数.5<=m<=10000.例如m=20时答案是17,19,m=1000时答案是881 ...

  4. [读书笔记]《算法竞赛入门经典》第1章

    书名:算法竞赛-入门经典 第2版 作者:刘汝佳 类别:读书笔记 文章目录 前言 第1章 程序设计入门 1.1 算术表达式 1.2 变量及其输入 1.3 顺序结构程序设计(Sequential Prog ...

  5. 【算法竞赛入门经典】读书笔记

    前言 寒假期间准备一下练一下OJ,对于我这个小菜鸟来说,打稳基础很是关键.听说过[算法竞赛入门经典]的大名,加上自己学习的是 C++ ,而这本书用的是 C ,多学一门语言也是不错的.因此决定每天最少看 ...

  6. 蓝桥杯备考——算法竞赛入门经典(第2版)学习笔记2

    算法竞赛入门经典(第2版)学习笔记2 第二章 循环结构程序设计 2.1 for循环 2.2 while 循环和do-while 循环 2.3 循环的代价 2.4 算法竞赛中的输入输出框架 2.5 注解 ...

  7. 多阶段决策问题——DAG(算法竞赛入门经典笔记)

    多阶段决策问题--DAG 本文为算法竞赛入门经典第九章第三节的笔记(刘汝佳. 算法竞赛入门经典.第2版[M]. 清华大学出版社, 2014.) 多阶段决策问题:每作一次决策就可以得到解的一部分,当所有 ...

  8. 算法竞赛入门经典(刘汝佳)——代码笔记

    Reference: <算法竞赛入门经典>(刘汝佳)第一版.第二版 ------------------------------------------------------------ ...

  9. [刷题]算法竞赛入门经典 3-10/UVa1587 3-11/UVa1588

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 题目:算法竞赛入门经典 3-10/UVa1587:Box 代码: //UVa1587 - Box #include&l ...

最新文章

  1. 基础面试题 — 数据结构与算法
  2. Spring - @ControllerAdvice + @ExceptionHandler全局处理Controller层异常(转)
  3. Void void Void用在泛型
  4. 详谈P(查准率),R(查全率),F1值
  5. 软件测试人员棘手的问题,Èí¼þ²âÊԵļ¬ÊÖÎÊÌ⣺ÈçºÎ±ÜÃâÖظ´ÌύȱÏÝ...
  6. kv存储对抗关系型数据库
  7. c++ 结构体遍历_PBRT-E4.3-层次包围体(BVH)(一)
  8. 关于inodes占用100%的问题及解决方法续集如何解决clientmqueue目录文件太多
  9. python去除\ufeff、\xa0、\u3000
  10. 深度学习之目标检测 第2章 目标检测算法基础介绍分类,目标检测方法基本流程
  11. 51单片机外设篇:按键
  12. Hebb和Delta学习规则
  13. php加密解密 hash,PHP 加解密总结之 hash
  14. CMAQ-5.2安装及测试数据运行
  15. 手握流量密码,万粉不是梦
  16. No ‘Access-Control-Allow-Origin‘ header is present on the requested resource Vue配置代理解决跨域问题
  17. word表格分开快捷键_Word拆分与合并单元格快捷键
  18. 系统可用性SLA指标
  19. 谷歌学术简明使用说明
  20. Docker国内镜像源设置

热门文章

  1. 【C 语言】数据类型本质 ( sizeof 函数 | 数据类型大小 )
  2. 【Java 并发编程】线程简介 ( 并发类型 | 线程状态 | CPU 数据缓存 )
  3. 【Flutter】Flutter 布局组件 ( Wrap 组件 | Expanded 组件 )
  4. 【计算机网络】网络层 : ICMP 协议 ( ICMP 差错报文 | 差错报文分类 | ICMP 询问报文 | ICMP 应用 | Ping | Traceroute )
  5. 计算机网络第七次笔记
  6. 【转】Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask
  7. pl/sql函数学习
  8. NHibernate1.02使用MsAccess2000Dialect 提供对 Access 数据库的支持
  9. ROS学习(二):在ubuntu 16.04安装ROS Kinetic
  10. C程序多线程同时画圆画方