hash poj_1200 Crazy Search
2014-05-11 17:02
253 查看
#include <iostream> #include <cstdio> #include <cstring> #include <string> using namespace std; int n,nc; char s[1000000]; int _hash[16000005],num[257]; int main() { // freopen("in","r",stdin); while(scanf("%d%d",&n,&nc)!=EOF) { memset(_hash,0,sizeof(_hash)); memset(num,0,sizeof(num)); memset(s,'\0',sizeof(s)); scanf("%s",s); int len=strlen(s); int seed=0; // printf("here\n"); for(int i=0;i!=len;i++) { if(!num[s[i]]) { num[s[i]]=++seed; } if(seed==nc) { break; } } // printf("here\n"); int sum=0; int ans=0; for(int i=0;i<=len-n;i++) { sum=0; for(int j=0;j<n;j++) { sum=sum*nc+num[s[i+j]]-1; } if(!_hash[sum]) { _hash[sum]=1; ans++; } } printf("%d\n",ans); } return 0; }
简单 hash
这里有比较全的字符串hash
https://www.byvoid.com/blog/string-hash-compare/
相关文章推荐
- c语言实现hashmap(转载)
- 在C#中生成与PHP一样的MD5 Hash Code的方法
- Javascript SHA-1:Secure Hash Algorithm
- 理解php Hash函数,增强密码安全
- PowerShell中定义哈希散列(Hash)和调用例子
- Perl 哈希Hash用法之入门教程
- perl哈希hash的常见用法介绍
- php的hash算法介绍
- 简单的四则运算
- 数的奇偶性
- linux 内核 hash table 的使用
- perl socket传hash
- perl socket传hash(use Storable)
- 简单的hash查表原理
- ACM网址
- PHP一致性hash的实现
- 一步一步写算法(之hash表)
- 1272 小希的迷宫
- 1272 小希的迷宫
- hdu 1250 大数相加并用数组储存