算法竞赛入门经典读书笔记(四)7.3子集生成
输入一个数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子集生成相关推荐
- 算法竞赛入门经典读书笔记(三)7.2枚举排列
7.2.1生成1~n的所有排列 递归调用的方法可以实现. [cpp] view plaincopy #include <iostream> using namespace std; voi ...
- 算法竞赛入门经典读书笔记(二)7.1简单枚举
7.1.1简单枚举 除法 输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为数字0~9的一个排列,2<=n<=79. 样例输入: 62 样例输出 ...
- c语言 如果 n 是素数,且 n+2 也是素数,则称为孪生素数.,算法竞赛入门经典: 第四章 函数与递归 4.3孪生素数...
/* 孪生素数: 如果n和n+2都是素数,则称他们是孪生素数.输入m,输出两个数均不超过m的最大孪生素数.5<=m<=10000.例如m=20时答案是17,19,m=1000时答案是881 ...
- [读书笔记]《算法竞赛入门经典》第1章
书名:算法竞赛-入门经典 第2版 作者:刘汝佳 类别:读书笔记 文章目录 前言 第1章 程序设计入门 1.1 算术表达式 1.2 变量及其输入 1.3 顺序结构程序设计(Sequential Prog ...
- 【算法竞赛入门经典】读书笔记
前言 寒假期间准备一下练一下OJ,对于我这个小菜鸟来说,打稳基础很是关键.听说过[算法竞赛入门经典]的大名,加上自己学习的是 C++ ,而这本书用的是 C ,多学一门语言也是不错的.因此决定每天最少看 ...
- 蓝桥杯备考——算法竞赛入门经典(第2版)学习笔记2
算法竞赛入门经典(第2版)学习笔记2 第二章 循环结构程序设计 2.1 for循环 2.2 while 循环和do-while 循环 2.3 循环的代价 2.4 算法竞赛中的输入输出框架 2.5 注解 ...
- 多阶段决策问题——DAG(算法竞赛入门经典笔记)
多阶段决策问题--DAG 本文为算法竞赛入门经典第九章第三节的笔记(刘汝佳. 算法竞赛入门经典.第2版[M]. 清华大学出版社, 2014.) 多阶段决策问题:每作一次决策就可以得到解的一部分,当所有 ...
- 算法竞赛入门经典(刘汝佳)——代码笔记
Reference: <算法竞赛入门经典>(刘汝佳)第一版.第二版 ------------------------------------------------------------ ...
- [刷题]算法竞赛入门经典 3-10/UVa1587 3-11/UVa1588
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 题目:算法竞赛入门经典 3-10/UVa1587:Box 代码: //UVa1587 - Box #include&l ...
最新文章
- 基础面试题 — 数据结构与算法
- Spring - @ControllerAdvice + @ExceptionHandler全局处理Controller层异常(转)
- Void void Void用在泛型
- 详谈P(查准率),R(查全率),F1值
- 软件测试人员棘手的问题,Èí¼þ²âÊԵļ¬ÊÖÎÊÌ⣺ÈçºÎ±ÜÃâÖظ´ÌύȱÏÝ...
- kv存储对抗关系型数据库
- c++ 结构体遍历_PBRT-E4.3-层次包围体(BVH)(一)
- 关于inodes占用100%的问题及解决方法续集如何解决clientmqueue目录文件太多
- python去除\ufeff、\xa0、\u3000
- 深度学习之目标检测 第2章 目标检测算法基础介绍分类,目标检测方法基本流程
- 51单片机外设篇:按键
- Hebb和Delta学习规则
- php加密解密 hash,PHP 加解密总结之 hash
- CMAQ-5.2安装及测试数据运行
- 手握流量密码,万粉不是梦
- No ‘Access-Control-Allow-Origin‘ header is present on the requested resource Vue配置代理解决跨域问题
- word表格分开快捷键_Word拆分与合并单元格快捷键
- 系统可用性SLA指标
- 谷歌学术简明使用说明
- Docker国内镜像源设置
热门文章
- 【C 语言】数据类型本质 ( sizeof 函数 | 数据类型大小 )
- 【Java 并发编程】线程简介 ( 并发类型 | 线程状态 | CPU 数据缓存 )
- 【Flutter】Flutter 布局组件 ( Wrap 组件 | Expanded 组件 )
- 【计算机网络】网络层 : ICMP 协议 ( ICMP 差错报文 | 差错报文分类 | ICMP 询问报文 | ICMP 应用 | Ping | Traceroute )
- 计算机网络第七次笔记
- 【转】Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask
- pl/sql函数学习
- NHibernate1.02使用MsAccess2000Dialect 提供对 Access 数据库的支持
- ROS学习(二):在ubuntu 16.04安装ROS Kinetic
- C程序多线程同时画圆画方