码迷,mamicode.com
首页 >  
搜索关键字:c语言 交换变量 异或 不创建临时变量    ( 3515个结果
[LeetCode]Single Number 异或的妙用
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
hdu 4421 和poj3678类似二级制操作(2-sat问题)
/* 题意:还是二进制异或,和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
Java的位运算符具体解释实例——与(&)、非(~)、或(|)、异或(^)
位运算符主要针对二进制,它包含了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。以下具体介绍每一个位运算符。1.与运算符与运算符用符号“&”表示,其使用规律例如以下:两个操作数中位都为...
分类:编程语言   时间:2014-11-08 23:20:56    阅读次数:240
关于异或(Xor)的一点笔记
因为博弈论里,尤其实在求sg函数时,经常会用到异或运算,所以我就把网上搜到的一些相关知识和自己的一些理解记下来。如果出现差错,还请指出,谢谢!异或:可以简称Xor,可以用数学符号⊕表示,计算机就一般可以用^表示了。异或运算主要指二进制中。 0⊕0=0,0⊕1=1 1⊕0=1,1⊕1=0可以看成是.....
分类:其他好文   时间:2014-11-08 16:36:56    阅读次数:154
Hdu 2176 取(m堆)石子游戏
Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=2176取石子游戏,以前都是问能否胜,这次问更实际的问题--如何取胜。思路很简单:取走一定量的石子,使其变为必败态。先算出总的状态,就是所有石子数异或后的值,取一个变量名叫allXor。然后将al...
分类:其他好文   时间:2014-11-08 16:32:08    阅读次数:130
Single Number
给一个整数数组,其中只有一个数字成单,其他数字都是成对出现,要在线性时间且不花费额外存储空间的条件下找出成单的数字。解决起来出奇的简单,主要运用到异或运算的两个基本性质:交换律:a^b^c=a^(b^c)a^a=0 a^0=a所以得到以下代码:public class Solution { p...
分类:其他好文   时间:2014-11-08 07:05:40    阅读次数:183
Codeforces Round #148 (Div. 1)
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
HDU 5088
题意其实就是:取k个数,使得可以异或出0来。将这k个数视为k行,每个数的每一位视为一列,那么这k个数边构成了一个01矩阵。那么能异或出0的充分条件是对这01矩阵高斯消元以后矩阵的秩小于矩阵的行数(也即存在一行全零,全零行就是异或出来的一行),那么我们只要对这个01矩阵高斯消元即可。如果不存在全零行则输出No,否则输出Yes。 PS:小优化,1e12比2^40略小,所以列数不会超过40,因为矩阵的...
分类:其他好文   时间:2014-11-03 19:27:14    阅读次数:144
nyoj 744 蚂蚁的难题(一)
蚂蚁的难题(一) 时间限制: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
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!