随笔分类 -  位运算

摘要:题目链接 C: 本题可以直接暴力求解,类比八皇后问题,使每个点分别对应一个值,分别判断有几条边能够满足即可 #include<bits/stdc++.h> using namespace std; #define ms(x,y) memset(x, y, sizeof(x)) #define low 阅读全文
posted @ 2020-06-05 20:37 GRedComeT 阅读(126) 评论(0) 推荐(0)
摘要:"题目链接" 考虑二进制, 若满足条件, 那么二进制位数每一位都$≤1$, 例如0 1 3, 对应的二进制为0, 1, 11, 这样末尾有2个1, 不满足条件, 若为0 1 2, 对应的二进制为0, 1, 10, 满足条件, 使用短除法很容易扩展到k进制 阅读全文
posted @ 2020-03-12 20:53 GRedComeT 阅读(136) 评论(0) 推荐(0)
摘要:简述题意 给你N个数对 表示坐标与状态(0/1), M个操作,给定一个区间,区间内的坐标的状态翻转 思路:看到区间修改,很容易想到差分,对数对sort,每个a_i与a_i-1异或构造差分数组b,每次对[l,r]区间操作时,只需要将b[l]与b[r+1]对1异或操作就行了 那么我们如何判断哪些操作需要 阅读全文
posted @ 2020-02-17 20:51 GRedComeT 阅读(321) 评论(0) 推荐(0)
摘要:1e18对应2进制有58位,可以直接暴力模拟,因为读入的数都是2次幂,__builtin_ctz这个内置gcc函数可以算出二进制下末尾有几个0,读入时统计,然后从n的最低位开始判断,注意每次升位的时候如果有2个相同的就要向上一位进位,当拆掉比他大的数时,必定对比他大的位各个产生一个1,因为>>1 # 阅读全文
posted @ 2020-02-13 15:42 GRedComeT 阅读(200) 评论(0) 推荐(0)
摘要:定义一个函数f(x,y), f(x,y) = x|y - y,给你一个数列,a1,a2,,an问如何排列能使f(f(f(a1,a2),a3),````,an)答案最大,我们将f(x,y)变形,就是f(x,y)=x&(~y),那么答案的大小只与第一个选取的x有关,其余都是取反交,那我们只要找出一个最大 阅读全文
posted @ 2020-02-11 14:49 GRedComeT 阅读(225) 评论(0) 推荐(0)