1、数组中只有一个元素只出现一次,其余出现偶数次。
利用异或中相同元素相互抵消的方式求解。
2、数组中只有2个元素只出现一次,其余出现偶数次。
class Solution {
public:
int singleNumber(int A[], int n) {//返回只出现一次的元素
if(n==1)return A[0];
int i,sum=A...
分类:
其他好文 时间:
2014-11-10 01:10:17
阅读次数:
155
/*
题意:还是二进制异或,和poj3678类似
建边和poj3678一样
*/
#include
#include
#include
#define N 2100
struct node{
int v,next;
}bian[N*N];
int head[N],dfn[N],low[N],vis[N],stac[N],belong[N],yong,ans,index,top;
void init...
分类:
其他好文 时间:
2014-11-09 13:58:58
阅读次数:
236
位运算符主要针对二进制,它包含了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。以下具体介绍每一个位运算符。1.与运算符与运算符用符号“&”表示,其使用规律例如以下:两个操作数中位都为...
分类:
编程语言 时间:
2014-11-08 23:20:56
阅读次数:
240
因为博弈论里,尤其实在求sg函数时,经常会用到异或运算,所以我就把网上搜到的一些相关知识和自己的一些理解记下来。如果出现差错,还请指出,谢谢!异或:可以简称Xor,可以用数学符号⊕表示,计算机就一般可以用^表示了。异或运算主要指二进制中。 0⊕0=0,0⊕1=1 1⊕0=1,1⊕1=0可以看成是.....
分类:
其他好文 时间:
2014-11-08 16:36:56
阅读次数:
154
Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=2176取石子游戏,以前都是问能否胜,这次问更实际的问题--如何取胜。思路很简单:取走一定量的石子,使其变为必败态。先算出总的状态,就是所有石子数异或后的值,取一个变量名叫allXor。然后将al...
分类:
其他好文 时间:
2014-11-08 16:32:08
阅读次数:
130
给一个整数数组,其中只有一个数字成单,其他数字都是成对出现,要在线性时间且不花费额外存储空间的条件下找出成单的数字。解决起来出奇的简单,主要运用到异或运算的两个基本性质:交换律:a^b^c=a^(b^c)a^a=0 a^0=a所以得到以下代码:public class Solution { p...
分类:
其他好文 时间:
2014-11-08 07:05:40
阅读次数:
183
A
wool sequence 表示一个序列中可以找到一个连续的子区间使得区间异或值为0
那么求的是不含这种情况的序列个数
题目中数据范围是,在0~2^m - 1中选n个数作为一个序列
n和m都是10^5
仔细思考一下。
第一位 有2^m-1种情况
第二位由于不能跟其一样 有2^m-2种情况
第三位由于不能跟第二位一样,并且不能跟前两位的异或值一样,有2...
分类:
其他好文 时间:
2014-11-05 19:49:16
阅读次数:
141
题意其实就是:取k个数,使得可以异或出0来。将这k个数视为k行,每个数的每一位视为一列,那么这k个数边构成了一个01矩阵。那么能异或出0的充分条件是对这01矩阵高斯消元以后矩阵的秩小于矩阵的行数(也即存在一行全零,全零行就是异或出来的一行),那么我们只要对这个01矩阵高斯消元即可。如果不存在全零行则输出No,否则输出Yes。
PS:小优化,1e12比2^40略小,所以列数不会超过40,因为矩阵的...
分类:
其他好文 时间:
2014-11-03 19:27:14
阅读次数:
144
蚂蚁的难题(一)
时间限制:1000 ms | 内存限制:65535 KB
难度:2
描述
小蚂蚁童鞋最近迷上了位运算,他感觉位运算非常神奇。不过他最近遇到了一个难题:
给定一个区间[a,b],在区间里寻找两个数x和y,使得x异或y最大。来,帮帮他吧!
输入
有多组测试数据(以EOF结尾)。
每组数据输入两个数a,b.(0
输出
输出a到b之间,...
分类:
其他好文 时间:
2014-11-03 16:29:42
阅读次数:
230
题目 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)思路 根据【异或】原理,任何一个数与自身异或的结果都为0以及任何数与0异或的结果都是其本身,所以本题可以将数组的所有的元素异或,得到结果即是只出现一次的.....
分类:
编程语言 时间:
2014-11-02 16:27:26
阅读次数:
216