摘要: 本章介绍了散列表(hash table)的概念、散列函数的设计及散列冲突的处理。散列表类似与字典的目录,查找的元素都有一个key与之对应,在实践当中,散列技术的效率是很高的,合理的设计散函数和冲突处理方法,可以使得在散列表中查找一个元素的期望时间为O(1)。散列表是普通数组概念的推广,在散....
分类:
其他好文 时间:
2014-11-04 18:49:33
阅读次数:
223
nginx的参数调整nginx.confserver_names_hash_bucket_size256;client_header_buffer_size256k;large_client_header_buffers4256k;client_max_body_size50m;sendfileon;tcp_nopushon;keepalive_timeout200;tcp_nodelayon;client_body_buffer_size256k;client_header_timeout3m;c..
分类:
其他好文 时间:
2014-11-04 17:39:37
阅读次数:
520
题目大意:给出一个序列,问一个区间里有没有长度为定长的已知序列。
思路:第一步的想法是把序列哈希一下,如果暴力的话,就是在区间里面O(n)的去判断,但是这样显然太慢了,我们需要O(logn)的时间之内求出区间内有没有一个值。这个问题就可以用可持久化线段树或者划分树来解决了。划分树我不咋会,就写了可持久化线段树。代码略丑,见谅。
CODE:
#include
#inclu...
分类:
其他好文 时间:
2014-11-04 17:34:01
阅读次数:
120
题目大意:给出平面上的n个点,问能组成多少个正方形。
思路:一开始看时间3秒半,就想用set水过,然而失败了。没办法手写hash吧。观察坐标的范围,
CODE:
#include
#include
#include
#include
#define MAX 1010
using namespace std;
struct Point{
int x,y;
...
分类:
其他好文 时间:
2014-11-04 15:02:02
阅读次数:
156
给定a、b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a、b文件共同的url?可以估计每个文件的大小为5G*64=300G,远大于4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。遍历文件a,对每个url求取hash(url)%1000,然后根据...
分类:
Web程序 时间:
2014-11-04 06:42:32
阅读次数:
201
class Solution {//用set判断一个元素是否存在于集合中O(logn)。用到的一个优化是连续的x个数对应的序列长度都是一样的,可以通过判断元素是否遍历过来避免查找。没有这一步会超时。有的也用unordered_set代替set,据说这是hash表,O(1),更快。
public:
int longestConsecutive(vector &v) {
if(...
分类:
其他好文 时间:
2014-11-04 00:12:22
阅读次数:
239
匹配两个人相似度。A,G,C,T,每两个都会有一个对应的值,给出两串基因,长度可以不一样,可以在基因中间加_使两串长度一样,然后有一个对应值,求最大对应值。
先做出对应的表
DP方程:
x=dp[i-1][j-1]+hash[str_a[i-1]][str_b[j-1]];
y=dp[i-1][j]+hash[str_a[i-1]]['-'];
z=dp[i][j-1]+hash[str...
分类:
其他好文 时间:
2014-11-03 22:37:30
阅读次数:
252
先通过并查集处理出来有多少种不同的集合,每个集合有多少人。一定要不要忘记了与别的没有联系的独立点。
并查集的时候可以通过hash处理出来每个数目相同的集合的个数。
这样以人数为权值,个数为限制进行多重背包,结果就是答案。
题目链接:http://codevs.cn/problem/3372/
#include
#include
#include
#include
#include ...
分类:
其他好文 时间:
2014-11-03 20:57:56
阅读次数:
278
近期要使用DBD,于是搜了下相关的资料,先贴个科普性的吧:转自http://www.javaeye.com/topic/202990DB综述DB最初开发的目的是以新的HASH訪问算法来取代旧的hsearch函数和大量的dbm实现(如AT&T的dbm,Berkeley的ndbm,GNU项目的gdbm)...
分类:
数据库 时间:
2014-11-03 18:58:05
阅读次数:
130
(Digest authentication)是一个简单的认证机制,最初是为HTTP协议开发的,因而也常叫做HTTP摘要,在RFC2671中描写叙述。其身份验证机制非常easy,它採用杂凑式(hash)加密方法,以避免用明文传输用户的口令。摘要认证就是要核实,參与通信的两方,都知道两方共享的一个秘密...
分类:
Web程序 时间:
2014-11-03 16:20:48
阅读次数:
194