![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
位运算
穷源溯流
路很长,尽管走便是。
展开
-
洛谷 P1558 色板游戏(线段树+位运算)
由于 T 不超过 30 ,所以根据位运算,每一位代表一种颜色,利用在线段树上的或操作即可求得有多少个 1,统计 1 的个数即可注意 1<<(k-1) 代表的是二进制的第 k 位const int N=1e5+5; int i,j,k; int n,m; int a[N]; struct Node { int l,r; int sum,lazy; void update(int val)...原创 2020-12-10 21:47:19 · 288 阅读 · 0 评论 -
Codeforces Round #664 (Div. 2) C.Boboniu and Bit Operations(思维)
给出有 n 个元素的数组 a,和 m 个元素的数组 b求 c 数组,c[i]=a[i]& b[j] (j ∈ [1,m]),使得 c1| c2 | …… | cn 最小我们可以知道 a&b<=min(a,b) , a|b>=max(a,b)所以使得 c 数组尽量相同, 假设都是 ans那么证明a[i] &b[j] =ans 即可也就是说对于 a[i] 总存在一个数 b[j] 使得 a[i] & b[j] =ansco...原创 2020-08-13 10:46:54 · 333 阅读 · 2 评论 -
Codeforces Round #647 (Div. 2) - Thanks, Algo Muse!
A. Johnny and Ancient Computer#pragma GCC optimize(2)#include <bits/stdc++.h>#define rush() int T;cin>>T;while(T--)#define go(a) while(cin>>a)#define ms(a,b) memset(a,b,sizeof a)#define E 1e-8#define debug(a) cout<<"*"&...原创 2020-06-05 10:25:41 · 256 阅读 · 0 评论 -
位运算的奇技淫巧
首先,先来介绍一下关于位运算中的 异或(^)异或:若参加运算的两个二进制位值相同则为0,否则为1下面是异或运算的三个性质交换律:a ^ b ^ c <=> a ^ c ^ b 任何数与0异或 0 ^ n = n 相同的数异或为0 n ^ n => 0leecode: 136.只出现一次的数给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间...原创 2020-06-13 12:13:34 · 442 阅读 · 0 评论 -
1412:二进制分类
【题目描述】若将一个正整数化为二进制数,在此二进制数中,我们将数字1的个数多于数字0的个数的这类二进制数称为A类数,否则就称其为B类数。例如:(13)10=(1101)2,其中1的个数为3,0的个数为1,则称此数为A类数;(10)10=(1010)2,其中1的个数为2,0的个数也为2,称此数为B类数;(24)10=(11000)2,其中1的个数为2,0的个数为3,则称此数为B类...原创 2019-12-31 16:17:04 · 986 阅读 · 0 评论 -
1的个数
题目:给定一个十进制非负整数N,求其对应2进制数中1的个数。输入输入包含一行,包含一个非负整数N。(N < 109)输出输出一行,包含一个整数,表示N的2进制表示中1的个数。样例输入100样例输出3最普通的方法#include <iostream> // 9 分using namespace ...原创 2019-12-31 16:04:40 · 631 阅读 · 0 评论