异或
Jerry99s
OI -> ACM -> AI
展开
-
异或、异或和 的性质与应用
异或是一种基于二进制的位运算,用符号XOR或者 ^ 表示,其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1。它与布尔运算的区别在于,当运算符两侧均为1时,布尔运算的结果为1,异或运算的结果为0。简单理解就是不进位加法,如1+1=0,,0+0=0,1+0=1。性质1、交换律2、结合律(即(a^b)^c == a^(b^c))3、对于任何数x,转载 2015-06-13 22:07:33 · 50907 阅读 · 5 评论 -
BestCoder#56 Clarke and puzzle
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5465 分析:由上一篇博客可之,xor为0则先手必输。所以只需一个二维树状数组。 代码:#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int Tmax=505;int n,m,q;原创 2015-09-22 21:17:01 · 347 阅读 · 0 评论 -
LightOJ 1269. Consecutive Sum (Trie+区间异或和最大)
题目: http://lightoj.com/volume_showproblem.php?problem=1269题意:保证数字在32位内;输出区间异或和最大/最小。分析:把前缀异或和插入trie树中;对于查询最大值:尽量走不相同的边;对于查询最小值:尽量走相同的边。代码:#include <bits/stdc++.h>using namespace std;t...原创 2019-08-08 11:13:31 · 512 阅读 · 0 评论 -
HDU 6625. three arrays (Trie×2)
题目: http://acm.hdu.edu.cn/showproblem.php?pid=6625题意:给定两个长为n的数组a和b;重新排列a和b,生成数组c,c[i]=a[i] xor b[i];输出字典序最小的c数组。分析:将a中的数插入一颗01字典树a中;将b中的数插入一颗01字典树b中;在trie树上查找n次,每次同时在a和b中下移一层;if 能同时走0,则同时走0;...原创 2019-08-08 15:44:06 · 408 阅读 · 0 评论 -
BZOJ 3261. 最大异或和 (可持久化Trie)
题目: https://www.lydsy.com/JudgeOnline/problem.php?id=3261题意:给定n个数,q个操作;操作有两种类型;第一种:在n个数后添加一个数;第二种:给定L、R、X,求a[p] xor a[p+1] xor ... xor a[N] xor x,其中p∈[L,R]分析:可持久化Trie裸题代码:原创 2019-08-12 20:03:08 · 376 阅读 · 0 评论