该题目提到,一个数组中除了一个数只出现一次之外,其他数都出现了两次,找出这个特别的数。这道题对时间和空间有要求,面对这种情况,一般是暗示有十分轻巧而简便的方法进行求解。在一些场景下,使用基本的逻辑运算是个不错的选择。自己简单写了一下,再参照网上部分解法,基本都是使用了异或运算(XOR),任何数与自己进行按位异或都等于0,而任何数与0进行按位异或都等于本身。...
分类:
其他好文 时间:
2015-09-05 00:12:23
阅读次数:
166
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。思路:(1)首先考虑数组中若是只有一个数字是出现一次,其他都是出现两次的情况,在这种情况下,将所有的数字都位异或运算(^),因为相同的数字异或结果为0,所以最后地到的结果就是那个出现一次的数。(2)下面...
分类:
编程语言 时间:
2015-09-03 19:14:54
阅读次数:
204
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。数字都出现两次,则异或肯定为0。考虑下这个题目的简化版——数组中除一个数字只出现1次外,其它数字都成对出现,要求尽快找出这个数字。根据异或运算的特点,直接异或一次就可以找出这个数字。现在数组中有两个数字只出现...
分类:
编程语言 时间:
2015-09-02 00:41:36
阅读次数:
189
题目:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=13&page=show_contest&contest=350
题意:有N盏灯和M个开关,每一个开关控制多盏灯(比如N=4,"0011"就代表这个开关控制第3和第4盏灯),现在问你有多少种按开关的方法使得所有的灯都熄灭(每个开关只能按一次,并且按的开关的...
分类:
Web程序 时间:
2015-08-31 19:37:00
阅读次数:
210
题意:
给出一个长度为n的a数组,和一个长度为m的b数组;
现有一矩阵A[i][j]=a[i] xor b[j];
q次求矩阵中某一块的第k大值;
n
题解:
又是一个k大值问题,但是显然并不能将矩阵列出来求值;
但是n和q的范围都小的诡异= =;
所以考虑对于每个询问暴力枚举1-n的某区间;
然后呢,对这些数去找第k大值;
如果询问的是最大值,那么在可持久化Trie上...
分类:
其他好文 时间:
2015-08-25 23:56:40
阅读次数:
270
State说明
S盒变换SubBytes
行变换ShiftRows
列变换MixColumns
与扩展密钥的异或运算AddRoundKey
密钥扩展程序Key Expansion
参考文献我们首先对AES分组对称加密算法有一个宏观的了解,它的模式主要为
以下是AES主要加密过程的伪代码。Cipher(byte in[4*4] , byte out[4*4] , word w[4*(Nr+1)]...
分类:
编程语言 时间:
2015-08-25 21:46:17
阅读次数:
261
开发加密程序时,有很多种加密算法可以选择,blowfish,AES,还有简单的异或运算啦等等其实这些都不是关键,关键点是如何隐藏加密算法的key如果将key作为明文保存在程序中,很容易在数据段中查看到相应的值从而失去了加密的意义由此可见,一个关键点在于隐藏key字符使用boost库的序列化宏,可以简...
分类:
其他好文 时间:
2015-08-25 18:40:52
阅读次数:
281
由于有一个数字消失了,那必定有一个数只出现一次而且其它数字都出现了偶数次。用搜索来做就没必要了,利用异或运算的两个特性——1.自己与自己异或结果为02.异或满足交换律。因此我们将这些数字全异或一遍,结果就一定是那个仅出现一个的那个数。 示例代码如下:int[] arra = {11,12,3,12,...
分类:
编程语言 时间:
2015-08-08 11:56:32
阅读次数:
321
加密解密 最简单的就是简单的字符串连接和运算,但是直接对字符串操作比较麻烦,所以建议一般做法是先把string转换为byte数组后再进行简单的异或运算或者其他运算进行加密和解密,最终比对的都是string、
void Start()
{
string s = "sxasxasx时刻到那时小时额外2饿饿2221312312";
string S...
分类:
编程语言 时间:
2015-08-01 18:59:23
阅读次数:
141
普通的 int 整型能表示的范围很有限,所以刷题时很多时候不得不用 long long 来存更大的数据。或者找出数列中某个只出现一次(或奇数次)的数(其余的数均出现两次 / 偶数次),用异或运算的经典题目,然而,如果数据范围不大的话,O(n) 的复杂度下,把第一次出现的所有数全加 / 乘起来,然.....
分类:
其他好文 时间:
2015-08-01 11:20:34
阅读次数:
120