题目大意:
给出一个序列,有两种操作,一种是计算l到r的和,另一种是让l到r的数全部和x做异或运算。
做法:
很显然直接暴力是不可能的(但是这题刚刚出来的时候,很多人用暴力水过去了,后来加强的数据吧),又是两种操作,又想到了线段树。。但是这并不简单,异或操作该怎么处理?
异或是一种位运算,如果x的第j位是1,那么说明l到r的每个数的第j位都要反转,(0^1=1,1^1=0),如果是0,那么...
分类:
其他好文 时间:
2014-09-02 15:56:35
阅读次数:
255
位运算符包括:| 按位或 OR,& 按位与 AND,^ 按位异或 XOR,~ 取反 NOT,> 右移 Right Shift,等等。本篇体验位运算符在C#中的应用。主要包括: ○ 进制转换 ※ 十进制转换成二进制 ※ 二进制转换成十进制○ | 按位或操作符○ & 按位与操作符○ ^ 按位异或操作符 ...
分类:
其他好文 时间:
2014-08-19 09:19:53
阅读次数:
377
BitSet简介 ????类实现了一个按需增长的位向量。位 set 的每个组件都有一个boolean值。用非负的整数将BitSet的位编入索引。可以对每个编入索引的位进行测试、设置或者清除。通过逻辑与、逻辑或和逻辑异或操作...
分类:
其他好文 时间:
2014-07-26 03:39:57
阅读次数:
232
出题:给定一个数字序列,其中每个数字最多出现两次,只有一个数字仅出现了一次,如何快速找出其中仅出现了一次的数字;分析:由于知道一个数字异或操作它本身(X^X=0)都为0,而任何数字异或操作0都为它本身,所以当所有的数字序列都异或操作之后,所有出现两次的数字异或操作之后的结果都为0,则最后剩下的结果就...
分类:
其他好文 时间:
2014-05-25 22:21:55
阅读次数:
411
题意:在一组数组中除一个元素外其它元素都出现两次,找出这个元素
思路:位运算。异或。因为异或操作可以交换元素的顺序,所以元素异或的顺序没影响,
最后出现再次的元素都会被异或掉,相当于0和只出现一次的那个元素异或,结果还是那个元素
推广:这个方法也适合于出现其它元素都出现偶数次,而要找的元素出现奇数次的情况
相关题目:Single Number II
class Solution...
分类:
其他好文 时间:
2014-05-11 02:37:42
阅读次数:
397
看这个:<?phpecho"A"^"}";?>运行这段代码,那么输出的结果是字符"<",之所以会得到这样的结果,是因为代码中对字符"A"和字符"}"进行了异或操作。在PHP中,两个变量进行异或时,会将字符串转换成二进制再进行异或,异或完,又将结果从二进制转换成了字符串。异或操作有..
分类:
Web程序 时间:
2014-05-09 21:20:37
阅读次数:
484