文本简单哈希

LL hash(char*str){
    int seed=131;
    LL h=0;
    for(int i=0;i<strlen(str);i++){
        h=h*seed+str[i];
    }
    return (h&0x7FFFFFFF);
}

可以快速给短文本哈希,效率比map高很多倍

时间: 2024-10-01 07:38:37

文本简单哈希的相关文章

hrbust1164, 1287_____hrbust上的简单哈希

hrbust1164, 1287_____hrbust上的简单哈希 hrbust1164 Description 用计算机随机生成了N个0到910305(包含0和910305)之间的随机整数(N≤100000000),对于其中重复的数字,只保留一个,把其余相同的数去掉.然后再把这些数从小到大排序. 请你完成"去重"与"排序"的工作. Input 输入有2行,第1行为1个正整数,表示所生成的随机数的个数: N 第2行有N个用空格隔开的正整数,为所产生的随机数. Out

【模版】简单哈希和哈希表处理冲突

哈希(Hash)算法就是单向散列算法,它把某个较大的集合P映射到另一个较小的集合Q中.数学原理听起来很抽象,在网上找到一个很生动的描述.我们有很多的小猪,每个的体重都不一样,假设体重分布比较平均(我们考虑到公斤级别),我们按照体重来分,划分成100个小猪圈. 然后把每个小猪,按照体重赶进各自的猪圈里,记录档案.如果我们要精确找到某个小猪怎么办呢?我们需要每个猪圈,每个小猪的比对吗? 当然不需要了. 我们先看看要找的这个小猪的体重,然后就找到了对应的猪圈了. 在这个猪圈里的小猪的数量就相对很少了.

【算法导论】简单哈希表的除法实现

哈希表,又名散列表,hashtable...云云,看似很高大上,其实不过是直接寻址的延伸而已.直接寻址为何物,看一个数组:a[10],那么取其中一个元素a[1],这就是直接寻址,直接去这个a+1的地址上,就找到了这个数值,时间复杂度为O(1).而哈希表的目的就是要让查找的时间复杂度尽量往O(1)上靠. 一.哈希表的最简单形式 假如有10000个数,比如0~9999,是可能出现的数字的集合,我们现在要将一段时间内,出现的数字,全部保存起来.如果出现的数字都不重复的情况下,我们可以使用一个长度为10

CSS文本简单设置

文本的设置直接影响到用户对界面的感受,好的文本设置能够让用户对界面有一种赏心悦目的感受,在这地方我们来简单的说说说对文本设置的时候,有哪些格式. 文本设置的时候我们应该注意什么: 平时我们文本设置的时候,主要是注重对文本的颜色设置,文本的对齐方式.文本的修饰,文本的转换和文本的缩进.以及关于文本设置的时候文字或者是行和字符之间的距离的一些设置.那么我们如今就来一一的看一下这些设置. 在说这些设置之前我们有必要了解CSS中的文本属性,由于全部的设置都是对文本的属性进行的设置,那么CSS中的文本属性

UVA1225DigitCounting(简单哈希表)

Trung is bored with his mathematics homeworks. He takes a piece of chalk and starts writing a sequence of consecutive integers starting with 1 to N (1 < N < 10000). After that, he counts the number of times each digit (0 to 9) appears in the sequenc

[SOJ] 简单哈希

Description 使用链地址法(又称拉链法)可以解决Hash中的冲突问题.其基本思想是:将具有相同哈希地址的记录链成一个单链表,m个哈希地址就设m个单链表,然后用一个数组将m个单链表的表头指针存储起来,形成一个动态的结构(图1). 现在给定哈希函数为Hash(key)= key mod 13,要求使用链地址法处理冲突,设有冲突的元素均插入表尾.要求建立起相应哈希表,并按一定格式打印. Input 输入包含多组数据.对于每组数据: 第1行为整数n(1 <=n <= 100), 代表key的

【bzoj3555】[Ctsc2014]企鹅QQ 简单哈希

传送门 题目分析 题意即求有多少对字符串只相差一个字符,枚举删除每个字符后的哈希, 看有多少相等即可. 比如有如下字符串:$Sd123$,其中S部分的哈希值为H,删除的是d,则原字符串的哈希值为$$(((H * T + d) * T + 1) * T + 2) * T + 3 = H * T^4 + d * T^3 + 1 * T^2 + 2 * T + 3$$ 删除过后就为$$((H * T + 1) * T + 2) * T +3 = H * T^3 + 1 * T^2 + 2 * T +

C语言-简单哈希表(hash table)

腾讯三面的时候,叫我写了个哈希表,当时紧张没写好···结果跪了··· 回来后粪发涂墙,赶紧写了一个! 什么都不说了···先让我到厕所里面哭一会··· %>_<% 果然现场发挥,以及基础扎实才是important的! 用链地址法解决冲突的哈希表(C语言,VS2008编写.测试): 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <math.h> 4 #include <string.h>

文本简单处理

1 words2=re.sub("[\s+\.\!\/_,$%^*(+\"\'\n]+|[+--:!,".<>,.:"?.[email protected]#¥%--&*()1234567①②③④)]+", "", words)