有两个变量 a 和 b ,交换这两个变量的值方法一 使用中间变量void swap(int *a, int *b){ int temp = 0; temp = *a; *a = *b; *b = temp; }方法二 不适用任何中间变量 ① 异或运算法void swap...
分类:
其他好文 时间:
2014-10-26 13:05:02
阅读次数:
149
题目
Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement i...
分类:
其他好文 时间:
2014-10-25 00:51:38
阅读次数:
214
题意:一棵树n个结点,每条边有0.1两种权值,每次询问权值为奇数的路径数目,或者改变某一条边的权值。分析:这个题目很巧妙低利用了异或和的特性,dfs得到每个点到根结点的权值异或和,然后奇数则为1,偶数为0,异或和为0和1的点组成的路径权值和一定为奇数,询问结果就是0个数和1个数乘积2倍。代码: 1....
分类:
其他好文 时间:
2014-10-24 00:13:47
阅读次数:
147
题目大意:给定n个非负整数A[1], A[2], ……, A[n]。
对于每对(i, j)满足1
注:xor对应于pascal中的“xor”,C++中的“^”。
思路:同NOI2010超级钢琴。http://blog.csdn.net/wyfcyx_forever/article/details/40400327
我们只需一开始在全局堆中放进去每个数和他之后的数异或的最小值,然后...
分类:
其他好文 时间:
2014-10-23 17:44:51
阅读次数:
238
题目大意:给定一堆数,从中找2个数异或得到的最大值直接暴力会超时,我们要考虑对于每一个数去匹配找到异或的最大值,我们希望2进制越前面的数尽可能都为1所以我们用 0-1 字典树保存这些数,因为一个int型的正整数最多2进制到第30位,所以我们用31层高的字典树保存,第一层为root节点每次查询操作都是...
分类:
其他好文 时间:
2014-10-23 01:23:30
阅读次数:
348
http://acm.hdu.edu.cn/showproblem.php?pid=4768
貌似很多人是用的二分
但是更好的做法貌似还是异或
对于第k个人,如果他接到偶数个传单,那么异或的结果还是0
就是说op记录所有收到传单的人次的总的异或值,那么因为只有一个是收到奇数次,所以异或值就是他的编号,至于收到几次,在O(n)可以计算
//#pragma comment(linker, "...
分类:
其他好文 时间:
2014-10-22 14:40:51
阅读次数:
171
第一种方法:1 int a = 3;2 int b = 5;3 a = a + b;4 b = a - b;5 a = a - b;缺点:a和b是很大的数的话容易溢出。第二种方法:int a = 3;int b = 5;a = a ^ b;b = a ^ b;a = a ^ b;"^"是异或运算,这...
分类:
其他好文 时间:
2014-10-21 21:28:25
阅读次数:
154
这篇文章中将使用C语言,实现交换两个任意类型变量的功能.有人认为异或运算只能用于整数类型的交换,实际上异或运算是针对二进制的.既然计算机所有的数据类型都是以二进制进行保存的,那么当然可以用异或运算交换任何数据类型.
分类:
其他好文 时间:
2014-10-21 15:22:37
阅读次数:
148
题目大意:给定一个不重复的序列a,在a中任选一个区间,求区间内的次大值与区间内的任意一个其它数的最大的异或值
首先我们枚举次大值 对于一个次大值 它可能选择的另一个数的取值范围为(l,r) 其中l为这个数左侧第二个比它大的数 r为这个数右侧第二个比它大的数
在这个区间内的Trie树中贪心寻找最大值即可
这个区间怎么求呢?我们维护一棵平衡树 将数从大到小将下标加进平衡树 每加进一个下标 比它大...
分类:
其他好文 时间:
2014-10-21 13:55:20
阅读次数:
185
题目大意:给定一个序列,多次询问[l,r]中最大子序异或和 强制在线
一直RE的同学注意,本题的强制在线如果直接加会爆int导致调用数组下标为负
首先我们有一个转化 维护前缀异或和数组a[] 那么[l,r]中最大子序异或和就是a数组中[l-1,r]中任取两个数的最大异或值
然后分块处理 对于每块的第一个数a[i] 我们依次处理出对于所有的j>=i的[i,j]中的最大异或值 即s[i][j]=...
分类:
其他好文 时间:
2014-10-21 10:23:24
阅读次数:
345