![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
位运算
文章平均质量分 61
位运算专题
mldl_
这个作者很懒,什么都没留下…
展开
-
CodeForces - 484A(位运算)
题目传送门:~~~题目大意有 t 次查询,每次查询(l, r)区间中,二进制下 1 的个数出现最多的数,如果有多个答案,输出最小的那个分析我们只需要在 l 上补 1 就可以了。具体操作:step1:令结果res = l,再定义一个指针 ind = 1。step2:我们比较 res | ind 和 r 的关系,如果 (res | ind) <= r ,我们就更新 res = res | ind,| 运算可以把 ind 二进制下的 1 给加到 res 上。 如果 (res | ind) .原创 2020-05-15 11:31:42 · 305 阅读 · 0 评论 -
计蒜客 T3156 (连续自然数的位运算(^ 、|、 &))
题目众所周知,位运算有与,或,异或三种。与:相同位的两个数字都为 1,则为 1;若有一个不为 1,则为 0。或:相同位只要一个为 1 即为 1。异或:相同位不同则为 1,相同则为 0 。小 Z 觉得她们非常的有趣,为了体现自己的强大,小 Z 一口气学会了三种运算,并出了一道题准备考考你。给出 l,r 以及运算 ⨁ ,询问 [l,r] 的每一个数通过 ⨁ 运算后的值。其中运算会给出,op=1 运算为与,op=2 运算为或,op=3运算为异或分析题目很清晰,数据很不友好,这是逼着我们找 O(原创 2020-05-11 19:38:18 · 720 阅读 · 1 评论 -
牛客小白月赛31 - A|B
题目链接:点这里~~~不是太难一个题,有一个处理技巧是看别人代码学的,记录一下题目大意:给定两个正整数a,x,统计满足以下条件的 b 的个数:1 ≤ b ≤ xa | b = a + b思路:总所周知 | 运算是在二进制下的不进位加法。对于满足 a | b = a + b 的 b 在二进制下有 1 的位置肯定不能和 a 在二进制下有 1 的位置相同。eg:a2 = 1001 1000,对应的 b2 = 0XX0 0XXX (X 可以是 0 或 1)很明显,满足要求的 b 的个数.原创 2021-04-08 01:04:46 · 131 阅读 · 0 评论 -
位运算:找出来数组中落单的两个数
题目大意每次给你 2 * n + 2 个的数字,除其中两个数字之外其他每个数字均出现两次,找到这两个数字并升序输出。思路最简答的想法,排序,然后找出只出现一次的数,不再叙述。来说一说用位运算怎么解决:假设这两个不同的数 x2 = 1100101 和 y2 = 1010001。观察标记出来的位置。易知,对于两个不同的数,一定有一个位置 pos 对应这两个数在二进制下是不同的。 上边的例子中,pos = 3我们这里先讲两个前导知识:0 ^ x = x,x 异或 0 的结果还是 xx ^ x原创 2021-03-29 13:53:20 · 398 阅读 · 0 评论