首页 > 其他分享 >二进制求子集(位图法)

二进制求子集(位图法)

时间:2024-04-09 11:01:51浏览次数:27  
标签:subset 二进制 图法 int 子集 print

0.使用二进制方式求子集

例如:
a5 a4 a3 a2 a1
1 1 1 1 1

1.代码模板

#include<bits/stdc++.h>
using namespace std;
int n;
int a[] = {1,2,3,4,5,6,7,8,9,10};

// 求 a[0] -> a[n-1]的所有子集 
void print_subset(int n) {
	// i < (1<<n) 即 i <= 2^(n-1), 是 1111 不是 10000 
	for(int i = 0; i < (1<<n); i++){
		for(int j = 0; j < n; j++){
			if(i & (1 << j)){
				cout << a[j] << " ";
			}
		}
		cout << endl; 
	}
}
int main() {
	cin >> n;
	print_subset(n);
	return 0;
}

标签:subset,二进制,图法,int,子集,print
From: https://www.cnblogs.com/trmbh12/p/18123414

相关文章

  • 将一个结构体里面的数据转为 小端对齐的二进制流
    现在有一个C++的结构体,需要把它转为二进制流,而且是小端对齐的。我们还需要将一个小端对齐的二进制流,转为对应的结构体。appendLittleEndianparseLittleEndian这2个方法是chatgpt提供给我的,功能能准确实现。代码也比较简洁。 #include<iostream>#include<vector>#inc......
  • 日记 2024.4.7:子集卷积
    日记2024.4.7:子集卷积记号\(F(x)=\sum_{S\subseteq[n]}f_Sx^{S}\)是一个集合幂级数,其中\([n]=\{1,2,\cdots,n\}\),\(f_S\)是一个数组,然后写成像生成函数(其实是“形式幂级数”)的形式,\(x^S\)的这个指数是没意义的。FWT/FMT即两个集合幂级数的并、交、异或卷积运算。h......
  • 进制之间的转换之“十六进制 转 十进制 转 二进制 方案”
    1.十六进制转十进制十六进制数为:0X1A6F根据16进制数要转十进制得到公式:F*160+6*161+A*162 +1*163 十六机制数:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F也就是常数:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15转为常数:15 *160 +6*161 +10*162 +1*163 计......
  • 二进制和位运算
    1.无符号:int32位可以表示0~2^32-1位数。2.有符号:负数占1/2,正数和0占1/2首位为0表示非负。首位为1表示负数,后面是数值位。-1表示:先看正数:0001为1,减1——>0000表示0,每一位取反——>1111。-2表示:先看正数:0010,减1(向高位借位)——>0001表示1,取反——>1110。-8:1110,减1......
  • R语言数据操纵:如何构建子集
    目录向量的子集矩阵的子集数据框的子集列表的子集如何处理缺失值向量化操作构建子集的基本方法:1.使用[]提取一个或多个类型相同的元素2.使用[[]]从列表或者数据框中提取元素3.使用$按名字从列表或数据框中提取元素向量的子集比如有一个向量x,他的内容是1到5,我们使......
  • 如何把一个十进制数转化为一个二进制数
    起因Miqa在改愤怒的小鸟,WA了两个点,尝试画图未遂,于是开调,但是想直观的看到二进制数,所以有了这个工具。#include<bits/stdc++.h>usingnamespacestd;inlinevoidtwice(longlongx){ stack<int>num; while(x!=0) { if(x&1)num.push(1); elsenum.push(0); x>>=1; ......
  • DFS:深搜+回溯+剪枝解决排列、子集问题
                      创作不易,感谢三连支持!! 一、全排列I.-力扣(LeetCode)classSolution{public://全局变量vector<vector<int>>ret;vector<int>path;boolcheck[6];vector<vector<int>>permute(vecto......
  • ctfshow--web9 md5二进制格加密的绕过
    dirsearch扫到robots文件查看一下发现有个index.phps文件访问这个index.phps,可以下载下来我们来审计一下这里的代码<?php$flag=""; $password=$_POST['password']; if(strlen($password)>10){ die("passworderror"); } $sql="select*from......
  • C语言02-常量、二进制、数据类型
    第4章常量1.常量特点程序运行时,其值不能改变的量,即为常量。习惯上常量名使用大写,方便与变量区分。2.常量分类​ **字面量常量**:直接使用的常量,不需要定义或声明,包括整数常量、浮点数常量、字符常量。注:有1,2,3等 ——顾名思义,就是数字整数 1.2,1.3,1.4等 ——也就......
  • 子集与全排列问题(力扣78,90,46,47)
    系列文章目录子集和全排列问题与下面的组合都是属于回溯方法里的,相信结合前两期,再看这篇笔记,更有助于大家对本系列的理解一、组合回溯问题二、组合总和问题文章目录系列文章目录题目子集一、思路二、解题方法三、Code子集II一、思路二、解题方法三、Code全排列一......