一维指数型枚举

使用场景

  • 给定n个水平方格
  • 每个方格里面可以放1或0
  • 那么所有存放的情况一共有2n2^n2n种
  • 枚举出所有情况

二进制串的位运算结论

  • 给定一个二进制串,如101011
  • 从左到右可以规定其下标为:5 4 3 2 1 0
  • 那么43 >> 2 & 1(返回1或0)可以判断:二进制串101011下标为2处的数字是否为1

通过二进制串的位运算进行一维指数型枚举

题目:

  • 给定一个长度为6的一维数组 (元素为0或1)
  • 枚举出所有情况,在数组元素为1的位置执行turn()方法

for (int op = 0; op < 1 << 6; op++) {// 扫描二进制串for (int i = 0; i < 6; i++) {if ((op >> i & 1) == 1) turn(i);}
}

小技巧 ----- 通过二进制串的位运算进行一维指数型枚举相关推荐

  1. 小技巧 ----- 通过二进制串的位运算进行二维指数型枚举

    二维指数型枚举 题目: 给定4x4矩阵(每个元素为1或0) 枚举出所有情况,在矩阵元素为1的位置执行turn()方法 思路: 把4x4方格看作一个一维的水平长度为16的方格 即现在需要枚举一个长度为1 ...

  2. c++ 输出二进制_【位运算与状态压缩】二进制的魅力

    [引言] 今天讲讲位运算与状态压缩.         位运算涉及系统底层的运算,骚操作很多:状态压缩则是编程中空间优化的有效手段,应该说两者本身其实并没有太直接的联系,但是在实际使用时会有一定的结合, ...

  3. 《位运算技巧以及Leetcode的一些位运算题目》

    目录 技巧 练习位运算 [461. 汉明距离](https://leetcode-cn.com/problems/hamming-distance/) [190. 颠倒二进制位](https://le ...

  4. 负数的二进制表示与位运算

    首先必须要明确的是:负数在计算机中都是以补码来表示的. 负数的位运算也是在补码上进行的. 与运算 -2&-3 =-4 原码 10000010 10000011 取反 11111101 1111 ...

  5. 基础编程题之二进制插入(位运算)

    题目 题目的意思是给出n和m的二级制,要求把m的二进制数字插入到n的二进制的第j位到第i位(从右向左),它保证n的第j位和第i位均为0 这道题我在开始做的时候,没有注意到它保证了n的第j位和第i位均为 ...

  6. LeetCode 868. 二进制间距(位运算)

    1. 解题 给定一个正整数 N,找到并返回 N 的二进制表示中两个连续的 1 之间的最长距离. 如果没有两个连续的 1,返回 0 . 输入:22 输出:2 解释: 22 的二进制是 0b10110 . ...

  7. 小技巧 ----- 位运算的一些结论与应用

    x乘2的幂与除2的幂 (左乘右除) 公式: (x << n)表示x乘上2的n次方 (x >> n)表示x除以2的n次方// 10乘2的5次方 (10 << 5) 等 ...

  8. 为什么地磅的读数有进制么_谈谈二进制(三)——位运算及其应用

    0. 概要 前两篇文章我们了解了二进制的基本原理(谈谈二进制(一))以及二进制的四则运算(谈谈二进制(二)),本篇我们一起来看看二进制的位运算.先来看一下有哪些位运算: 上表中列出了我们编程语言中的所 ...

  9. hdu3006 状态压缩+位运算+hash(小想法题)

    题意:        给了n个集合,问你这n个集合可以组合出多少种集合,可以自己,也可以两个,也可以三个....也可以n个集合组在一起. 思路:       是个小想法题目,要用到二进制压缩,位运算, ...

最新文章

  1. 总结open与fopen的区别
  2. unity模块切换_(一)Unity3D模块介绍
  3. UITableView 顶部空白总结
  4. mysql 新建库在哪找_求助,mysql创建数据库找不到文件在哪问题
  5. snipaste滚动截图方法_电脑必备!这个截图神器比QQ截图更好用
  6. Shift register(RAM-based)------ALTSHIFT_TAPS
  7. JOSSO在JBOSS中安装与配置
  8. c语言变量申明和定义区别,C语言中变量定义与声明的区别
  9. Vue内容分发slot
  10. golang中的http server和http client
  11. lottie动画效果使用简例
  12. P2433 【深基1-2】小学数学 N 合一
  13. java找不到指定路径_java创建文件时提示找不到指定路径的解决方法
  14. 结合分析和数值技术 Python 在基本力学应用
  15. X86_64 GNU汇编、寄存器、内嵌汇编
  16. 仿朋友圈页面(超小白)
  17. 酷派android最新版本,酷派手机怎么升级系统 酷派手机系统升级操作方法介绍
  18. Hello React-姜威-专题视频课程
  19. 谷歌云端硬盘快速下载方法_如何在Google云端硬盘中禁用“快速访问”快捷方式...
  20. 修改mmsegmentation框架(deeplabV3+中加入注意力机制)

热门文章

  1. Codeforces 816C/815A - Karen and Game
  2. 关于 Linux上面 安装nodejs ccap模块 实现图形验证码的一些事情
  3. 【转】 C#学习笔记14——Trace、Debug和TraceSource的使用以及日志设计
  4. 如何使用alt键+数字键盘上的数字键打出特殊符号
  5. 数据结构与算法读书笔记2----C# 选择排序
  6. 【Java从0到架构师】SpringMVC - 返回值
  7. JDK11+Maven开发JavaFx启动问题:java.lang.IllegalAccessError: class com.sun.javafx.fxml.FXMLLoaderHelper
  8. 个人git指令成长史
  9. 为导入的项目更改cvs用户名
  10. SVD奇异值分解(PCA,LSI)