hdu 1381 Crazy Search(hash)
来源:互联网 发布:舞蹈软件下载 编辑:程序博客网 时间:2024/04/27 11:21
题目链接:hdu1381
第一次做hash题目,看的别人的思路,先将字符串传为数学,然后每一段数字(长度为n)转换为m进制的数,再判断是否重复
#include<stdio.h>#include<string.h>#define N 16000005char a[N];int cnt[N];int hash[8000000],d[28];int ans,n,m;void hashs(){ int i,j,k = 0; int len = strlen(a); memset(d,0,sizeof(d)); for(i = 0 ; i < len ; i ++) cnt[i] = a[i] - 'a'; i = 0 ; while(i < len) { if(!d[cnt[i]]) d[cnt[i]] = k++; if(k == m) break; i ++; } int limit = len - n + 1; ans = limit;//最多有多少段字符串 for(i = 0 ; i < limit ; i ++) { int sum = 0 ; for(j = i ; j < i + n ; j ++) { sum = sum*m + d[cnt[j]];//转化为m进制的数 } sum %= N; if(!hash[sum]) hash[sum] = 1; else//重复,总个数减一 ans --; }}int main(){ int T; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); scanf("%s",a); memset(hash,0,sizeof(hash)); hashs(); printf("%d\n",ans); if(T) printf("\n"); } return 0;}
- hdu 1381 Crazy Search(hash)
- HDU 1381 Crazy Search (hash)
- hdu Crazy Search(Hash)
- Hdu 1381 Crazy Search[Hash||map]
- hdu 1381 Crazy Search (map+string||hash)
- hdu 1381 Crazy Search(hash|map)
- HDU-1200-Crazy Search(hash)
- Crazy Search(hash)
- HDU 1381 Crazy Search(HASH) 4662 MU Puzzle
- zoj1507 Crazy Search (hash )
- POJ1200 Crazy Search(hash)
- hdu 1381 Crazy Search
- 【字符串hash】 HDOJ 1381 Crazy Search
- HDU 1381 Crazy Search 哈希
- POJ 1200 Crazy Search(HASH)
- POJ 1200 Crazy Search (字符串hash)
- hash poj_1200 Crazy Search
- POJ 1200 Crazy Search //HASH
- java访问sql 2008 检索自动生成的键,获得 IDENTITY 值的方法
- jquery ui 简单引用
- QInputDialog::getInt
- windows和linux中程序栈空间
- pdf 文本转换为 java 字符串
- hdu 1381 Crazy Search(hash)
- 如何删除source insight中打开工程的历史记录
- RFT 实用CODE
- HDU 2087剪花布条(简单KMP)
- 范磊C++ 原创笔记 第六章 面向对象
- office2007下载地址
- Python多进程并发操作中进程池Pool的应用
- Dwr实现自动补全功能
- 在windows下写成批处理文件(.bat)顺序执行命令