题目链接:点击打开链接
题意:
给定n
下面n行,每行2个数u v 表示有v堆石子:u,u+1,u+2···u+v-1
问先手必胜还是后手必胜
思路:
首先根据Nim的博弈结论
把所有数都异或一下,看结果是0还是非0
而这里因为数字太多所以想优化
那么其实对于一个序列 u, u+1, u+2 ····
显然 {4,5} {,6,7}, {8,9} 这样2个一组的异或结果就是1
...
分类:
其他好文 时间:
2014-06-26 10:25:50
阅读次数:
176
有2n+1个数,其中有2n个数出现过两次,找出其中只出现一次的数例如这样一组数3,3,1,2,4,2,5,5,4,其中只有1出现了1次,其他都是出现了2次,如何找出其中的1?最简便的方法是使用异或,代码如下:public class XOR { public static void mai...
分类:
其他好文 时间:
2014-06-25 22:24:48
阅读次数:
612
高级运算符
位运算符
按位取反: ~
按位与运算: &
按位或运算: |
按位异或运算: ^
按位左移运算:
按位右移动算: >>
溢出运算符
自从swift里面提供了所谓的类型安全之后,我们就不能再用一个 Int.max 进行+1操作了,这样会导致报错。所以swift又提供了一个让我们在知道这会溢出的前提下,继续+1的溢出运算符,这听上去也不错。...
分类:
其他好文 时间:
2014-06-22 18:00:23
阅读次数:
283
题目来源:Light OJ 1272 Maximum Subset Sum
题意:选出一些数 他们的抑或之后的值最大
思路:每个数为一个方程 高斯消元 从最高位求出上三角 消元前k个a[i]异或和都能有消元后的异或和组成
消元前
k
个
a[i]
a[i]异或和都能有消元后的
异或和都能有消元后的
p
个
a[i]
a[i]的异或
的异或
保证每一列只有一个1 消元...
分类:
其他好文 时间:
2014-06-22 16:58:09
阅读次数:
231
数组含有n个数,其中有一个数只出现1次,其余的数都出现两次,求只出现一次的数。 这个主要考察的是位运算中的异或运算的性质-----当两个相等的数做异或运算他们的值为0(a^a = 0)。本题中对数组中所有的数做异或,那么最后异或的结果就是只出现1次的数。思想很简单代码如下:...
分类:
其他好文 时间:
2014-06-20 10:02:03
阅读次数:
281
1,异或运算^1)0和任何数异或都得到原来的数2)两个相同的数字异或得0.利用该性质常用来寻找数称对出现时缺失的某一个数异或运算可以用来1)判断一个数字是否是偶数(二进制表示中只有一位是0,n^(n-1)=0)2)寻找缺失的数字,如0-n中缺失的数字3)不使用第三方变量交换两个变量的值4)使用位运算...
分类:
其他好文 时间:
2014-06-15 22:34:14
阅读次数:
492
基本运行符:+(加法、正数)- (减法、负数)* (乘法)/ (除法)% (求余) :
在Swift中,求余可以是浮点数求余。&&(逻辑与)|| (逻辑或)^
(逻辑异或)表示范围的符号:..和...(两个点:不包括下界和三个点包括下界)++,--三位运算符 ?:需要注意的是范围符号..和... 区...
分类:
其他好文 时间:
2014-06-13 20:19:27
阅读次数:
330
位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。1.与运算符与运算符用符号“&”表示,其使用规律如下:两个操作数中位都为1,结...
分类:
其他好文 时间:
2014-06-09 20:01:30
阅读次数:
187
其他两次,一个一次/其他三次,一个一次/其他两次,两个一次============================================任何一个数字异或他自己都得零。注意异或运算的初始化变量为0,因为0异或任何数字都得那个数字自身。Single
Number1.一个整型数组中除了一个数字之...
分类:
其他好文 时间:
2014-06-09 19:23:56
阅读次数:
209
利用后继节点的SG值求出当前的SG值。在当前任意一个BLANK插入一个x后,分成两段,于是,看成两段的NIM,异或和,按SG的定义求出当前的SG值即可。
1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 ...
分类:
其他好文 时间:
2014-06-09 13:37:24
阅读次数:
235