子集生成
来源:互联网 发布:捷易通软件下载 编辑:程序博客网 时间:2024/05/22 04:37
#include <iostream>#include <algorithm>using namespace std;//子集生成//增量构造法void print_subset(int a[], int cur, int n){ for(int i=1; i<cur; i++) cout << a[i] << " "; cout << endl; int j = cur? a[cur-1]+1:0; for(; j<=n; j++) { a[cur] = j; print_subset(a, cur+1, n); }}//位向量法int b[10];void print_subset1(int a[], int cur, int n){ if(cur > n) { for(int i=1; i<cur; i++) if(b[i]) cout << i << " "; cout << endl; return; } b[cur] = 1; print_subset1(a, cur+1, n); b[cur] = 0; print_subset1(a, cur+1, n);}//二进制法void print_subset2(int cur, int n){ for(int i=0; i<n; i++) if(cur & (1<<i)) cout << i+1 << " "; cout << endl;}int main(){ int a[] = {0, 1, 2, 3}; int n = 3; cout << "增量构造法:\n"; print_subset(a, 1, 3); cout << endl; cout << "位向量法:\n"; print_subset1(a, 1, 3); cout << endl; cout << "二进制法:\n"; for(int i=0; i<(1<<n); i++) //枚举各子集对应的二进制编码 print_subset2(i, n); cout << endl; return 0;}
0 0
- 生成子集
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 生成子集
- 生成子集
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- CGI编程完全手册
- CentOS 7 安装多媒体播放器
- 黑马程序员——java基础之继承和多态
- POJ 1637 Sightseeing tour
- 杭电校赛2015‘11 1005
- 子集生成
- mfc编辑框输入垂直居中&字体调整&不采用password属性进行密码输入&vs2013中加载bitmap位图
- JavaScript DOM操作表格及样式
- 线程概述
- 我的编程之路
- 【leetcode】3. Longest Substring Without Repeating Characters 三种方法
- 线程的创建和启动
- JavaScript获取DOM元素位置和尺寸大小
- hdu2602 Bone Collector (01背包)