子集生成

1.增量构造法

看下面的代码(书中代码),只用记住一句话: 一次选出一个元素放到集合中

#include
using namespace std;
int A[10] ;
void print_subset(int n,int *A,int cur);
int main(){
	print_subset(10,A,0); 
}
void print_subset(int n,int *A,int cur){
	for (int i=0; i0){
		s = A[cur-1] + 1;
	}else{
		s = 0;
	}
	for (int i=s; i

2位向量法:

#include
using namespace std;
void print_subset(int n,int *B,int cur);
int B[10];
int main(){
	print_subset(10, B, 0);
}

void print_subset(int n,int *B,int cur){
	if (cur == n){
		for (int i=0; i


你可能感兴趣的:(算法竞赛入门经典-刘汝佳,---读后实现)