首页 > 编程语言 >[C++]二进制求子集

[C++]二进制求子集

时间:2022-11-23 10:16:03浏览次数:36  
标签:二进制 mask C++ int 子集 序列

这几天做[leetcode1178] 猜字谜的题目,用到了很多小的知识技巧点。其中一个就是二进制状态压缩以及如何根据一个二进制序列求其子集,如二进制序列110111001子集里有000000001等等之类的;对于LeetCode1178,求子集有固定的元素不能改变的子集,即子集中包含特定的“1”。

int mask = 0;
for (int i = 1; i < 7; ++i) {
    mask |= (1 << (puzzle[i] - 'a'));
}
int subset = mask;
do {
    int s = subset | (1 << (puzzle[0] - 'a'));//包含特定元素的子集
    if (frequency.count(s)) {
          total += frequency[s];
 }
        subset = (subset - 1) & mask;
} while (subset != mask);

 

标签:二进制,mask,C++,int,子集,序列
From: https://www.cnblogs.com/echoqiqi/p/16916941.html

相关文章

  • Dev-C++5.11安装教程
    (目录)一、下载1.介绍原公司Bloodshed已经停止开发Dev-C++了,但是Embarcadero开发着一个Dev-C++的分支。详见:https://www.embarcadero.com/cn/free-tools/dev-c......
  • 如何利用C++使Windows蓝屏
    如何利用C++使Windows蓝屏虽说windows非常强大,但是使它蓝屏也非常简单:如果你想让Windows蓝屏,你一定会在运行框里输入:cmd/cfor/f%Iin('wmicprocessgetName')d......
  • C/C++个人帐本管理系统
    C/C++个人帐本管理系统程序设计题3:个人帐本管理系统指导老师:吴家皋[email protected]【问题描述】该系统要求实现一个简单、实用的个人帐本管理程......
  • C/C++飞机票订购系统
    C/C++飞机票订购系统程序设计题5:飞机票订购系统指导老师:吴家皋[email protected]【问题描述】该系统要求实现一个简单、实用的机票订购程序,主要功......
  • C++语言类的多态介绍和示例
         多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就可能会用到多态。    C++多态就是当调用成员函数时,会根据调用函数......
  • C++语言类的继承与派生介绍和示例
     继承    继承是面向对象程序设计中最重要的一个概念。继承允许我们根据一个类来定义另一个类,达到了代码功能重用效果。    当创建一个类时,如果待创建的类与......
  • C++语言运算符重载
     概念    在C语言中,运算符只能用于基本数据类型,例如,可以用==判断两个整数是否相等,但不能用于判断字符串是否相等,也不能用于判断结构体,也不能用于判断类。   ......
  • C++语言动态内存管理介绍和示例
     C++动态内存    在C++程序中,所有内存需求都是在程序执行之前通过定义所需的变量来确定的。但是可能存在程序的内存需求只能在运行时确定的情况。在这些情况下,程序......
  • C++语言vector容器介绍和示例
         之前我们在声明数组的时候,采用的是datatype array[len]的形式,数组在分配之后,不能调整大小,删除和插入数据时操作十分的繁琐,虽然可以采用链表,但是链表的操作更......
  • C++语言类的详解和示例
     超女选秀的例子我们玩了很久,为了教学的需要,暂时离开美眉们,我将采用实际项目开发的例子。在C语言基础知识中已学习过文件操作,在实际开发中,我会把文件操作封装成一个类,类的......