小技巧 ----- 通过二进制串的位运算进行二维指数型枚举
二维指数型枚举
题目:
- 给定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;
}
小技巧 ----- 通过二进制串的位运算进行二维指数型枚举相关推荐
- 小技巧 ----- 通过二进制串的位运算进行一维指数型枚举
一维指数型枚举 使用场景 给定n个水平方格 每个方格里面可以放1或0 那么所有存放的情况一共有2n2^n2n种 枚举出所有情况 二进制串的位运算结论 给定一个二进制串,如101011 从左到右可以规定 ...
- [位运算][递归] 递归实现指数型枚举
递归实现指数型枚举 从 1~n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案. 输入格式 输入一个整数n. 输出格式 每行输出一种方案. 同一行内的数必须升序排列,相邻两个数用恰好1个空格 ...
- c++ 输出二进制_【位运算与状态压缩】二进制的魅力
[引言] 今天讲讲位运算与状态压缩. 位运算涉及系统底层的运算,骚操作很多:状态压缩则是编程中空间优化的有效手段,应该说两者本身其实并没有太直接的联系,但是在实际使用时会有一定的结合, ...
- 《位运算技巧以及Leetcode的一些位运算题目》
目录 技巧 练习位运算 [461. 汉明距离](https://leetcode-cn.com/problems/hamming-distance/) [190. 颠倒二进制位](https://le ...
- 负数的二进制表示与位运算
首先必须要明确的是:负数在计算机中都是以补码来表示的. 负数的位运算也是在补码上进行的. 与运算 -2&-3 =-4 原码 10000010 10000011 取反 11111101 1111 ...
- 位运算之二进制中1的个数
本篇文章主要详解位运算的相关问题,以及解析python语言在求解该问题上的不方便. 涉及知识点: 1.原码,补码,反码的知识 2.与,或,非,异或,左移,右移,负数右移的相关知识 3.python数据 ...
- 位运算:二进制中1的个数
题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 分析: 作为渣渣,这个题我一开始真没想到用位运算.. 首先,说到二进制,就应该想到二进制的各种运算:按位与运算(& ...
- 位运算、二、八、十、十六进制介绍及相互转换
第一台计算机:ENIAC,出生于1946年2月14日宾夕法尼亚大学;byte=8bit; 位运算符 位运算是直接对二进制进行运算 << :符号位不动,右边补0 .>>:正数补0 ...
- 【LeetCode笔记】剑指 Offer 65. 不用加减乘除做加法(Java、位运算、二刷)
文章目录 题目描述 思路 & 代码 二刷 题目描述 讲道理,感觉算有点难度的题目了= =,还是需要时不时看看. 思路 & 代码 正负数情况可以不考虑(补码) 核心:加法 = 进位和 + ...
最新文章
- 国内5G工程建设面临的6大挑战
- python csv性能_性能:Python pandas DataFrame.to_csv附加逐渐变慢
- 记一次Linux修改MySQL配置不生效的问题
- SpringBoot面向切面编程-用AOP方式管理日志
- 学习笔记(八)——jQuery(二)
- cordova项目适配iPhoneX
- 复盘从一个监控主机到核心路由沦陷
- 要鼓励周鸿祎做360搜索
- SystemC在Ubuntu16.04上安装测试
- 一天一道算法题--6.15--卡特兰数
- 中科大快手提出多模态交叉注意力模型:MMCA,促进图像-文本多模态匹配!
- javascript经典问题总结及代码实例(未完待续)
- laravel5.4+vue+vux+element的环境搭配
- 神经网络激活函数与损失函数
- 生物信息学分析选用的服务器,蛋白质与蛋白质组分析生物信息学
- 五分频电路(50%占空比)
- Word安全警告 宏已被禁用解决
- 淘宝旺旺智能回复软件 旺旺智能客服 旺旺聊天机器人
- 设计模式:对问题行之有效的解决方式。其实它是一种思想。
- 伦敦旅游攻略及注意事项(201909)
热门文章
- javascript简单拖拽效果
- 使用PHP对word文档进行操作的方法
- 代码优化四部曲:“拆套”、“解耦”、”封装“、“重构”
- 今天去看招聘会了~~
- 【网络信息安全】鉴别和密钥分配协议
- 小程序入门学习19--springboot之HelloWorld
- Windows没有关机按钮 如何使用命令行关机 重启
- 心得总结:一名优秀的数据分析专家的能力模型
- 如何用报表解决销售工作衡量问题
- python中类的构成_Python类的构成元素