二进制压缩
在编程时遇到每个数据只有两种状态,且 dfs 或者 bfs 时遍历时间复杂度高时,可以采用二进制压缩数据,尤其是二维数组。
1.二进制压缩一个二位数组
例如:

-+--
----
----
-+--正常保存数据回使用二位数组,'+' -> 1,'-' -> 0,即
0100
0000
0000
0100

如果我们采用二进制压缩为一个 int 类型的数据,正好用 16 位来表示。
这里有两种表示方法,其实都一样,一种先从上到下变为从高位到低位,一种是从上到下变为从低位到高位。

从低位到高位int input = 0;int[][] data = new int[4][4];Scanner sc = new Scanner(System.in);String line = "";for (int i = 0; i < 4; i++) {line = sc.next();for (int j = 0; j < 4; j++) {data[dataIn++] = line.charAt(j);}}for (int i = 0; i < 16; i++) {if (data[i] == '+') {input |= (1 << i);// System.out.println(Integer.toBinaryString(input));}}
从高位到低位int input = 0;Scanner sc = new Scanner(System.in);String line = "";for (int i = 0; i < 4; i++) {line = sc.next();for (int j = 0; j < 4; j++) {input = input << 1;input = line.charAt(i) == '+' ? input + 1 : input;}}

二进制压缩 - 算法相关推荐

  1. JavaScript实现floatAsBinaryString浮点转为二进制字符串算法(附完整源码)

    JavaScript实现floatAsBinaryString浮点转为二进制字符串算法(附完整源码) floatAsBinaryString.js完整源代码 floatAsBinaryString.j ...

  2. Fliptile (二进制压缩)

    题目链接:http://poj.org/problem?id=3279 题目大意:有一个n*m的棋盘,0表示白色,1表示黑色.每次可以翻转当前位置,它的上下左右四个位置也会被相应翻转.问最少翻转多少次 ...

  3. jzoj100044-abcd【多重背包,二进制压缩,dp】

    正题 题目大意 给出长度为nnn的序列a,b,c,da,b,c,da,b,c,d 求一个序列eee满足 (∑i=1nei∗ci)=0(e∈[ai..bi])(\sum _{i=1}^ne_i*c_i) ...

  4. 【0-1背包】二进制灰狼算法解决0-1背包问题【Matlab】

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.0-1背包问题 1.问题描述 2.数学模型 二 .二进制灰狼算法 1.引言 2.算法改进 3.数学模型 4.算法流程 三 ...

  5. 【选址问题】二进制灰狼算法解决无容量选址问题【Matlab】

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.无容量设施选址问题 1.问题描述 2.数学模型 二.二进制灰狼算法 1.引言 2.算法改进 3.数学模型 4.算法流程 ...

  6. python:实现二进制补码算法(附完整源码)

    python:实现二进制补码算法 def twos_complement(number: int) -> str:"""Take in a negative int ...

  7. java十进制转二进制简单算法

    Java十进制转二进制简单算法 一.编程思路 可以运用简单的数学的计算的方法.如下 这张图大家应该都不陌生,10(例子中的10)一直除以2,余数写在右面那一列,如果被整除右面写0,如果没有别整除,写他 ...

  8. 利用从左到右二进制幂算法计算二进制的幂(霍纳法则升级版,变治法)

    文章目录 题目描述 一.二进制幂的计算 二.题解 1.源代码 2.源程序测试 写在最后 题目描述 7.a.应用从左到右二进制幂算法来计算 a 17 a^{17} a17 本题目来源:<算法设计与 ...

  9. 解决全局优化和离散问题的二进制多宇宙算法

    Binary multi‑verse optimization algorithm for global optimization and discrete problems 1.摘要 多宇宙算法已经 ...

最新文章

  1. 中国式姥姥上热搜感动无数人:有妈妈在,我才敢生娃
  2. 立体视觉动态测量技术
  3. 查询表空间是否是设置了自增
  4. scrapy安装出错
  5. filter vue 循环_vue v-for中使用filter筛选数据
  6. 【计蒜客 - 蓝桥训练】阶乘位数(数学,对数运算,求阶乘位数)
  7. 前端笔记-利用thymeleaf隐藏显示input及label
  8. Python 简单网页爬虫学习
  9. data的值 如何初始化vue_理解Vue响应式系统
  10. 百万数据php7取出循环_用php处理百万级以上的数据
  11. C/C++线程与多线程工作笔记0004---认识C中的线程和多线程
  12. 本硕一致计算机科学与技术专业介绍,哈尔滨理工大学计算机科学与技术专业介绍...
  13. 研发团队建设几点看法及建议
  14. DHCPv6技术介绍
  15. 【Linux】NUC977移植使用libmodbus
  16. 馈线中的VSWR电压驻波比
  17. Linux 编程 —— libstdc++.so.6: version `CXXABI_1.3.11‘ not found
  18. java横向导出excel_利用Java进行Excel的数据导入导出
  19. #今日论文推荐# 莫纳什大学最新《长文档摘要》综述,39页pdf长文档摘要的实证研究:数据集、模型和指标
  20. 谷粒商城九商品服务之商品属性及仓储服务todo

热门文章

  1. php利用wsh突破函数禁用执行命令(安全模式同理)
  2. 以管理创新推动零售企业ERP应用(转)
  3. Mac版本的Sublime Text常用快捷键
  4. 房地产—客户关系管理系统CRM|软件开发|软件外包|程序二次开发
  5. 车联网车载T-BOX系统解决方案
  6. PMP之项目质量管理---工具与技术
  7. MGRE、Tunnel、RIP、PPP综合实验
  8. python ug_一个python的UG二次开发简单例子(二)
  9. linux内核安装webkit,Ubuntu下安装基于WebKit 的网页浏览器Midori
  10. 【opencv】Face Detection using Haar Cascades