随笔分类 - 算法基础:位运算
摘要:补题链接:Here 算法涉及:位运算,DP 这道题想了很久但实在没想什么巧妙的解法,暴力的代码就不放,这里引用Kur1su 的思路 异或问题优先考虑二进制位,对于这个问题,我们需要考虑偶数长度的区间,那么先对 做处理,因为如果 是奇数其实加一/减一没有区别。然后
阅读全文
摘要:补题链接:Here **题意:**选取任意不重叠的两个区间,使异或结果为 样例: 在样例中我们可以选取 和 就是满足题意 **思路:**相同元素的异或为 ,所以我们找到两个点 ,与 \(i
阅读全文
摘要:动态规划当中有非常常见的一个分支——状态压缩动态规划,很多人对于状态压缩畏惧如虎,但其实并没有那么难,希望这文章能带你们学到这个经典的应用。 二进制表示状态 在讲解多重背包问题的时候,我们曾经讲过二进制表示法来解决多重背包。利用二进制的性质,将多个物品拆分成少数个物品,转化成了简单的零一背包来解决。
阅读全文
摘要:学习之余重新复习了下 位运算的奇技淫巧(二) 又发现了几个有趣的位运算,部分内容来自东哥 本文分两部分,第一部分列举几个有趣的位操作,第二部分讲解算法中常用的 n & (n - 1) 操作,顺便把用到这个技巧的算法题列出来讲解一下。 因为位操作很简单,所以假设读者已经了解与、或、异或这三种基本操作。
阅读全文
摘要:位运算就是基于整数的二进制表示进行的运算。由于计算机内部就是以二进制来存储数据,位运算是相当快的。 之前有总结过位运算的技巧,但稍微对以前写的文章不太满意,所以重新总结一下 常用的运算符共 6 种,分别为与( & )、或( | )、异或( ^ )、取反( ~ )、左移( << )和右移( >> )。
阅读全文
摘要:记录dalao的位运算骚操作 根据百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞
阅读全文
摘要:& 与运算 两个位都是 1 时,结果才为 1,否则为 0 1 0 0 1 1 & 1 1 0 0 1 1 0 0 0 1 | 或运算 两个位都是 0 时,结果才为 0,否则为 1 1 0 0 1 1 | 1 1 0 0 1 1 1 0 1 1 可以用在if语句判断中(替代 || ) ^异
阅读全文