增量构造法 (白书P188)

原创 2015年08月20日 11:38:10
#include<iostream>
#include<cstdio>
using namespace std;
int ans[6];
int n;

void dfs(int cnt)
{
	int i,j;
	for(i=0;i<cnt;i++) cout<<ans[i]<<" ";
	if(cnt) cout<<endl;
	int s=cnt?ans[cnt-1]+1:0;
	for(i=s;i<n;i++) {
		ans[cnt]=i;
		dfs(cnt+1);
	}
} 

int main()
{
	while(cin>>n) {
		dfs(0);
	}
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

子集生成算法 之 位向量法和增量构造法

什么是子集生成? 算法竞赛经典入门中的解释:给定一个集合,枚举所有的可能的子集。 位向量法 1.什么是位向量法? 通过构造一个标记向量pd[i],而不直接构造存放题目数据的子集A。 当pd[i]==t...

子集生成的两种方法 (增量构造法 和 位向量法)

该算法来自--刘汝佳的算法竞赛入门经典。书中介绍了两种算法的核心代码,但却没有逐过程详细解说,另初学者看文字时很难看懂, 遇到问题,是先要直接研究问题的细节呢还是先把问题搞清楚?我认为绝对应该先学习...

增量构造法

#include using namespace std; int a[20]; void print_subset(int n,int* a,int cur){ for (int i...

子集生成之增量构造法(允许有重复元素)

给出增量构造法生成子集的程序和分析

子集生成算法——增量构造法

思路是一次选出一个元素放入集合中生成0~n的子集,每次选出最小的值放入集合中,通过从0递增得到下一个位置的值。#include #include #include #include #include ...
  • hhhzua
  • hhhzua
  • 2016年03月18日 10:15
  • 945

子集生成 增量构造法 位向量法 二进制法

增量构造法 参考 //此算法仅仅是输出下标,实际应用应输入另一个数组来进行存储数据 //这三种方式,为了理解这个花费了最长的时间,太纠结于细节了,刘汝佳写的不是特别清楚 //这三种方式的话,都可以理...

子集生成:增量构造法 位向量法 二进制法

子集生成算法:给定一个集合(集合中无重复元素),枚举所有可能的子集。下面以输入集合1,3 ,5为例。 刘汝佳算法竞赛入门经典P188。 1.增量构造法。即一次选出一个元素放在集合中,每次放入新元素后输...

UVA - 11205 The broken pedometer(子集枚举+增量构造法)

The Broken Pedometer  The Problem A marathon runner uses a pedometer with which he i...

暴力求解法_子集生成(增量构造法,位向量法,二进制法)

子集生成子集生成算法:给定一个一级和,枚举它的所有可能的子集。输入:4 输出:增量构造法第一种思路是一次选出一个元素放到集合中code:#include int A[1010]; void prin...

刘如佳白书算法竞赛入门代码

  • 2010年08月23日 23:47
  • 72KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:增量构造法 (白书P188)
举报原因:
原因补充:

(最多只允许输入30个字)