
位运算
穷源溯流
路很长,尽管走便是。
-
原创 洛谷 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:1931
0
-
原创 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:54162
0
-
原创 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:41117
0
-
原创 位运算的奇技淫巧
首先,先来介绍一下关于位运算中的 异或(^)异或:若参加运算的两个二进制位值相同则为0,否则为1下面是异或运算的三个性质交换律:a ^ b ^ c <=> a ^ c ^ b 任何数与0异或 0 ^ n = n 相同的数异或为0 n ^ n => 0leecode: 136.只出现一次的数给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间...2020-06-13 12:13:3472
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:04236
0
-
原创 1的个数
题目:给定一个十进制非负整数N,求其对应2进制数中1的个数。输入输入包含一行,包含一个非负整数N。(N < 109)输出输出一行,包含一个整数,表示N的2进制表示中1的个数。样例输入100样例输出3最普通的方法#include <iostream> // 9 分using namespace ...2019-12-31 16:04:4073
0