二维指数型枚举

题目:

  • 给定4x4矩阵(每个元素为1或0)
  • 枚举出所有情况,在矩阵元素为1的位置执行turn()方法

思路:

  • 把4x4方格看作一个一维的水平长度为16的方格

  • 即现在需要枚举一个长度为16的二进制串

  • 将二进制串翻转过来,想象把其下标标记到矩阵的每一个元素上

    0 1 2 3
    4 5 6 7
    8 9 10 11
    12 13 14 15

  • 用(i, j)扫描上面抽象出来的矩阵,将坐标(i, j)转化为二进制串的对应的下标

  • 二进制串在该下标的数字如果为1则执行turn()方法

public static void main(String[] args) {for (int op = 0; op < 1 << 16; op++) {// 扫描矩阵for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {// 将(i, j)转化为二进制串的对应下标if ((op >> get(i, j) & 1) == 1) turn(i, j);}}}
}// (i, j)转为二进制串下标
public static int get(int i, int j) {return i*4 + j;
}

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

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

    一维指数型枚举 使用场景 给定n个水平方格 每个方格里面可以放1或0 那么所有存放的情况一共有2n2^n2n种 枚举出所有情况 二进制串的位运算结论 给定一个二进制串,如101011 从左到右可以规定 ...

  2. [位运算][递归] 递归实现指数型枚举

    递归实现指数型枚举 从 1~n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案. 输入格式 输入一个整数n. 输出格式 每行输出一种方案. 同一行内的数必须升序排列,相邻两个数用恰好1个空格 ...

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

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

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

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

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

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

  6. 位运算之二进制中1的个数

    本篇文章主要详解位运算的相关问题,以及解析python语言在求解该问题上的不方便. 涉及知识点: 1.原码,补码,反码的知识 2.与,或,非,异或,左移,右移,负数右移的相关知识 3.python数据 ...

  7. 位运算:二进制中1的个数

    题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 分析: 作为渣渣,这个题我一开始真没想到用位运算.. 首先,说到二进制,就应该想到二进制的各种运算:按位与运算(& ...

  8. 位运算、二、八、十、十六进制介绍及相互转换

    第一台计算机:ENIAC,出生于1946年2月14日宾夕法尼亚大学;byte=8bit; 位运算符 位运算是直接对二进制进行运算 << :符号位不动,右边补0 .>>:正数补0 ...

  9. 【LeetCode笔记】剑指 Offer 65. 不用加减乘除做加法(Java、位运算、二刷)

    文章目录 题目描述 思路 & 代码 二刷 题目描述 讲道理,感觉算有点难度的题目了= =,还是需要时不时看看. 思路 & 代码 正负数情况可以不考虑(补码) 核心:加法 = 进位和 + ...

最新文章

  1. 国内5G工程建设面临的6大挑战
  2. python csv性能_性能:Python pandas DataFrame.to_csv附加逐渐变慢
  3. 记一次Linux修改MySQL配置不生效的问题
  4. SpringBoot面向切面编程-用AOP方式管理日志
  5. 学习笔记(八)——jQuery(二)
  6. cordova项目适配iPhoneX
  7. 复盘从一个监控主机到核心路由沦陷
  8. 要鼓励周鸿祎做360搜索
  9. SystemC在Ubuntu16.04上安装测试
  10. 一天一道算法题--6.15--卡特兰数
  11. 中科大快手提出多模态交叉注意力模型:MMCA,促进图像-文本多模态匹配!
  12. javascript经典问题总结及代码实例(未完待续)
  13. laravel5.4+vue+vux+element的环境搭配
  14. 神经网络激活函数与损失函数
  15. 生物信息学分析选用的服务器,蛋白质与蛋白质组分析生物信息学
  16. 五分频电路(50%占空比)
  17. Word安全警告 宏已被禁用解决
  18. 淘宝旺旺智能回复软件 旺旺智能客服 旺旺聊天机器人
  19. 设计模式:对问题行之有效的解决方式。其实它是一种思想。
  20. 伦敦旅游攻略及注意事项(201909)

热门文章

  1. javascript简单拖拽效果
  2. 使用PHP对word文档进行操作的方法
  3. 代码优化四部曲:“拆套”、“解耦”、”封装“、“重构”
  4. 今天去看招聘会了~~
  5. 【网络信息安全】鉴别和密钥分配协议
  6. 小程序入门学习19--springboot之HelloWorld
  7. Windows没有关机按钮 如何使用命令行关机 重启
  8. 心得总结:一名优秀的数据分析专家的能力模型
  9. 如何用报表解决销售工作衡量问题
  10. python中类的构成_Python类的构成元素