题目3 : 集合
时间限制:12000ms
单点时限:6000ms
内存限制:256MB
描述
统计满足下列条件的集合对(A, B)的数量:
A,B都是{1,
2, …, N}的子集;
A,B没有公共的元素;
f(A)<=
f(B)。f(S)定义为S中所有元素的按位异或和。例如, f({})
= 0, f({1, ...
分类:
其他好文 时间:
2014-05-26 03:13:04
阅读次数:
267
2014百度之星资格赛——XOR SUM
Problem Description
Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包含了N个正整数,随后 Prometheus 将向 Zeus 发起M次询问,每次询问中包含一个正整数 S ,之后 Zeus 需要在集合当中找出一个正整数 K ,使得 K 与 S 的异或结果最大。P...
分类:
其他好文 时间:
2014-05-24 20:53:55
阅读次数:
266
Xor Sum
Problem Description
Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包含了N个正整数,随后 Prometheus 将向 Zeus 发起M次询问,每次询问中包含一个正整数 S ,之后 Zeus 需要在集合当中找出一个正整数 K ,使得 K 与 S 的异或结果最大。Prometheus 为了让 Zeu...
分类:
其他好文 时间:
2014-05-24 17:53:54
阅读次数:
177
题目:输入一个整型数组,数组里除了两个数出现一次之外,其它所有数字出现的次数都是2次,求这两个数字。要求时间复杂度为O(n),空间复杂度为O(1)
1 题目要求时间复杂度为O(n)并且空间复杂度为O(1)。这个时候朴素的方法利用数字来记录出现次数的方案都是不行的。
2 根据题目的特点,只有两个数出现一次,其它的所有数据都是出现2次。如果这两个数是a和b,那么对这个数组异或的结果就是a^...
分类:
其他好文 时间:
2014-05-24 14:17:24
阅读次数:
258
如果要交换a、b之间的值,一般的做法是:tmp=a;a=b;b=tmp;这种方法不得不使用一个临时变量。从网上学来一个方法,可以不用使用临时变量:a^=b^=a^=b;这样计算之后,就可以交换a、b值证明:首先:^
是 位运算 的一种: 异或 运算1^1=0;0^0=0;1^0=1;0^1=1;将a...
分类:
其他好文 时间:
2014-05-23 22:07:50
阅读次数:
285
题目题意:给n个数,m次询问,每次给一个数,求这n个数里与这个数 异或
最大的数。思路:建一个类似字典数的数,把每一个数用 32位的0或者1 表示,查找从高位向底位找,优先找不同的,如果没有不同的,就找相同的。 1 #include
2 #include 3 #include 4 #inclu...
分类:
其他好文 时间:
2014-05-23 05:22:58
阅读次数:
196
AES是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准。
输入:128bit 的消息分组
输出:128bit 的密文分组
密钥长度及圈数
128 10
192 12
256 14
消息 与 密钥
addroundkey//添加轮密钥 每个字节与轮密钥的对应字节进行异或运算
subbytes// 字替代 经过s盒,即对每个字节进行替换,非线性部件,1...
分类:
其他好文 时间:
2014-05-21 08:59:39
阅读次数:
360
今天可爱的Mayuyu会带领大家来学习一个东西,那就是异或最大,Mayuyu的问题描述如下。
题目:给定一个数组a[],再给出m个询问,每个询问一个数x,在数组a[]中找出一个数y,使得x与y的异或值最大。
分析:最直观的思路就是对于每一个询问,直接暴力在数组a[]中比较,找最大的,但是这样做的时间复杂度会很大。
我们有一个很好的解法,那就是字典树,假设所有的数字范围均...
分类:
其他好文 时间:
2014-05-20 16:02:01
阅读次数:
253
这是一个编译错误,在ADT的编译器和SDK的工具有差异或是版本不一致时常会出现的一个问题,解决的方案如下:第一步:
updated eclipse (Help->Check for
updates)第二步:升级SDK的Tools和platform-tools第二步:在Eclipse->Project...
分类:
其他好文 时间:
2014-05-19 22:13:11
阅读次数:
464
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4810
思路:先把每个数字按位分离出来,存放1的个数,那么每位0的个数为n - 1的个数,然后利用组合数学和异或的原理,枚举奇数个1的情况,然后利用乘法和加法计数原理累加出来的就是该位的答案,最后乘上改为对应的数值最后加起来就是答案
代码:
#include
#include
const _...
分类:
其他好文 时间:
2014-05-18 04:30:41
阅读次数:
257