上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 25 下一页

2011年8月23日

字符串Hash函数的比较

摘要: 常用的字符串Hash函数还有ELFHash,APHash等等,都是十分简单有效的方法。这些函数使用位运算使得每一个字符都对最后的函数值产生影响。另外还有以MD5和SHA1为代表的杂凑函数,这些函数几乎不可能找到碰撞。常用字符串哈希函数有 BKDRHash,APHash,DJBHash,JSHash,RSHash,SDBMHash,PJWHash,ELFHash等等。对于以上几种哈希函数,我对其进行了一个小小的评测。Hash函数数据1数据2数据3数据4数据1得分数据2得分数据3得分数据4得分平均分BKDRHash20477448196.5510090.9582.0592.64APHash2347 阅读全文

posted @ 2011-08-23 15:17 lonelycatcher 阅读(1409) 评论(0) 推荐(0) 编辑

HDU 1496 equation 非常好的Hash

摘要: 这道题目如果用一个四重循环的话应该会超时,可以将方程转换为一个等式,a*x1*x1+b*x2*x2=-(c*x3*x3+d*x4*x4);但是如何寻找适当x1,x2,x3,x4是这个等式成立呢,用Hash是一个不错的选择,将a*x1*x1+b*x2*x2映射到一个很大的数组(经过计算1000000即可),然后再对二重循环c*x3*x3+d*x4*x4的结果与相对应的Hash值相比较即可View Code 1 /* 2 * Author:lonelycatcher 3 * problem:hdu 1496 4 * Type:Hash 5 */ 6 #include <iostream> 阅读全文

posted @ 2011-08-23 11:43 lonelycatcher 阅读(400) 评论(0) 推荐(0) 编辑

2011年8月22日

<bitset>的用法整理

摘要: 构造函数bitset<n> b;b有n位,每位都为0.参数n可以为一个表达式.如bitset<5> b0;则"b0"为"00000";bitset<n> b(unsigned long u);b有n位,并用u赋值;如果u超过n位,则顶端被截除如:bitset<5>b0(5);则"b0"为"00101";bitset<n> b(string s);b是string对象s中含有的位串的副本string bitval ( "10011" ); 阅读全文

posted @ 2011-08-22 18:46 lonelycatcher 阅读(430) 评论(0) 推荐(0) 编辑

2011年8月20日

HDU 1517

摘要: 这道题真的是想了很久,一直束缚在SG函数上了,殊不知有的时候寻找P-position和N-position的规律更加方便。看了大牛的代码,寻找必胜区间,还有就是&位运算把自己搞糊涂了,惭愧。。。。以后判断奇偶数还是用%的好。。。转自:http://blog.pfan.cn/cruxd/22157.html这题好X难。 题目大概意思是:两人轮流乘一个2-9的数,从1开始乘,求谁的乘积先大于N。 如果是加法就好做了。凑到剩下的数能整除11,然后对称着加。问题是乘法。所以寻找必胜点(段)。以1000为例。 1000 | 999 ... 112 | 若占住999到112,则对手必胜。必须让对手 阅读全文

posted @ 2011-08-20 20:44 lonelycatcher 阅读(873) 评论(0) 推荐(0) 编辑

HDU 1536 poj 2960 博弈 SG函数

摘要: 坑爹啊,一到简单的SG博弈题,折磨了我一个下午,竟然是在函数的递归调用中使用了全局的标志数组进行初始化。。。。View Code 1 /* 2 * Author:lonelycatcher 3 * Problem:HDU 1536 4 * Type:组合博弈,GS函数 5 */ 6 #include <iostream> 7 #include<stdio.h> 8 #include<algorithm> 9 #include<string.h>10 #include<cstdlib>11 using namespace std;12 阅读全文

posted @ 2011-08-20 17:49 lonelycatcher 阅读(314) 评论(0) 推荐(0) 编辑

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 25 下一页

导航