博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 1200 Hash处理字符串(简单的rabin-karp)
阅读量:4310 次
发布时间:2019-06-06

本文共 779 字,大约阅读时间需要 2 分钟。

     把出现过的每个字母映射到对应的数字,这样字符串就变成相应的nc进制数,然后把它转换成10进制,并放入hash[]中,如果是第一次放入,则总数加一。

    例如:(此分析出自。感谢他。)

   3 4

daababac

d = 3
a = 0
b = 1
c = 2
daa=300(4进制)
转换为十进制: daa = 3 * 4 ^ 2 + 0 * 4 ^ 1 + 0 * 4 ^ 0 = 48
然后if(!hash[48]) hash[48]++;
 
#include 
#include
#include
#include
using namespace std; #define MAX 16000005 char s[MAX]; int ascii[256]; int hash[MAX]; int main() {
freopen("acm.txt","r",stdin); int n,nc; int i,j; int len,cnt,sum; while(scanf("%d%d",&n,&nc)!=EOF) { cnt=0; memset(ascii,0,sizeof(ascii)); memset(hash,0,sizeof(hash)); scanf("%s",s); len=strlen(s); for(i=j=0; i
 
 

转载于:https://www.cnblogs.com/Jason-Damon/archive/2012/03/31/2426745.html

你可能感兴趣的文章
JPA自定义sql
查看>>
BigDecimal正确使用了吗?
查看>>
joplin笔记
查看>>
JNDI+springmvc使用
查看>>
vue+springboot分页交互
查看>>
vue+springboot打包发布
查看>>
XSL 开发总结
查看>>
【NOI 2018】归程(Kruskal重构树)
查看>>
如何开始DDD(完)
查看>>
[svc]gns3模拟器及探讨几个bgp问题
查看>>
Error:fatal: Not a git repository (or any of the parent directories): .git
查看>>
15 可视化工具 Navicat的简单使用
查看>>
神兵利器:Burpsuite工具分享与使用简介
查看>>
xml
查看>>
使用 Left Join 的一个错误说明
查看>>
Scala入门系列(十一):模式匹配
查看>>
Sql Server 生成数据透视表 (行列转换等经典SQL语句)
查看>>
理解sizeof()
查看>>
Vue学习笔记之vue-cli脚手架安装和webpack-simple模板项目生成
查看>>
SqlServer 扩展属性
查看>>