字符串哈希(Hash模板)
来源:互联网 发布:手机管理网络的软件 编辑:程序博客网 时间:2024/06/11 23:22
struct Hash{int hash[50500];int head[50500];int next[50500];int mod=10007;char mp[50500][20];void init(){memset(hash,0,sizeof(hash));memset(head,-1,sizeof(head));memset(next,-1,sizeof(next));}int get_hash(char *s){int seed=131;int h=0;for(int i=0;s[i];i++){h=((h*seed)%mod+(s[i]-'a'))%mod;}return h;}void add_hash(int s){int h=get_hash(mp[s]);next[s]=head[h];head[h]=s;}bool vj(char *s){int h=get_hash(s);h=head[h];while(h!=-1){if(strcmp(s,mp[h])==0)return true;h=next[h];}return false;}}T;void init_hash(int L,char *s,unsigned int *h)复杂度 O(L);输入 : L 字符串长度 s 字符串 h 串s的散列值预处理在h中unsigned int string_hash(unsigned int *h,int l,int r)复杂度 O(1)输入 :h 散列值预处理结果 l,r 需要散列的子串的首尾下标输出: 子串s[l,r)的散列值inline void init_hash(int l,char *s,unsigned int *h){h[0]=0;for(int i=1;i<=l;++i)h[i]=h[i-1]*mod+s[i-1];base[0]=1;for(int i=1;i<=l;++i)base[i]=base[i-1]*mod;}inline unsigned int string_hash(unsigned int *h,int l,int r){return h[r]-h[l]*base[r-l];}
阅读全文
0 0
- 字符串哈希(Hash模板)
- ACM hash哈希字符串 模板 hdu4080
- 字符串hash 函数模板
- 字符串HASH模板
- 字符串HASH模板
- 字符串HASH模板
- 【模板】字符串hash
- Hash 匹配字符串模板
- 字符串hash模板
- [模板]字符串hash
- 字符串HASH 学习总结 && 模板
- 一维字符串hash模板
- cf244D. Match & Catch 字符串hash (模板)或 后缀数组。。。
- 邝斌的ACM模板(字符串 HASH)
- 字符串 hash 哈希比较
- Codeforces 25E 字符串hash模板题
- POJ3461【1e6 字符串 hash模板】
- 字符串哈希模板
- 各种排序
- 如何设置EditPlus保存时不自动生成.bak文件
- TreeView无限节点代码(FTP服务器中的文件和文件名为例)
- 多线程中的Callable接口中的Futrue对象
- 用递归实现国王分橘子问题 C++
- 字符串哈希(Hash模板)
- 技术广度和难度
- Linux系统编程——进程的介绍
- 33STL之Map和multimap容器
- Java面试笔试题大汇总(最全+详细答案)
- caffe:将图像转化为LMDB格式文件
- 213. House Robber II
- 利用建站快速软件包:XAMPP,构建基于winodws平台快速搭建PHP的数据库应用- kimai
- EventBus框架总结之用法