首页 > 其他分享 >字符串哈希 学习笔记

字符串哈希 学习笔记

时间:2024-10-23 09:09:45浏览次数:6  
标签:第一种 笔记 剪掉 哈希 字符串 相当于

两种哈希的表示方式。
设 \(s_i\) 为字符串内第 \(i\) 位,\(h_i\) 表示字符串内 \([1,i]\) 的哈希值,\(p\) 为模数,那么第一种哈希方式是 :

  • \(h_i=h_{i-1}*p+s_i\),即把 \(h_i\) 当作一个 \(p\) 进制数,加入 \(s_i\) 时在数的末尾。
  • \(h_i=h_{i-1}+s_i*p^{i-1}\),即是在开头加入 \(s_i\)。
    如何查询呢?
  • 对于第一种,我们相当于要先把 \(s_j\) 后面的剪掉,再把 \(s_i\) 前面的剪掉,于是区间 \([i,j]\) 的哈希值为 \(h_j-h_{i-1}\times p^{j-i+1}\)。
  • 对于第二种,我们相当于把 \(s_j\) 的前面和 \(s_i\) 的后面剪掉,于是即为 \(\frac{h_j-h_{i-1}}{p^{i-1}}\)。

相关题目:

标签:第一种,笔记,剪掉,哈希,字符串,相当于
From: https://www.cnblogs.com/CodingGoat/p/18494393

相关文章

  • 浅谈哈希及一类应用杂题
    浅谈哈希及一类应用杂题关于哈希的一些另类想法PS:与后文实际应用无关哈希的目的本质就是比较两个无法直接比较是否相同的一些东西,通过赋值来使其获得比较大小的能力,然后就想能不能搞一个随手就能整出来还不容易被卡常数比如之前好多题卡\(131\)什么的。如果我的数是纯随机的......
  • 为什么有些人一拿到新笔记本就直接重装系统?看完就明白了
    前言前段时间有个小伙伴买了一台笔记本,用了一段时间之后发现新电脑并不是那么好用。明明买了很贵的笔记本电脑(Windows11系统),但为啥就是偶尔卡顿呢?先来说说这个电脑的配置是怎么样的:i5-13500H16GBDDR4500GBSSD如果这台电脑用来日常办公已经是绰绰有余了,但是为什么......
  • 【笔记】CSE 365 - Fall 2024之Talking Web(pwn.college)
    【入门笔记】CSE365-Fall2024之TalkingWeb(pwn.college)先看完level1 使用curl发送HTTP请求curl是一个用于在命令行中与网络进行交互的工具,支持多种协议,如HTTP、HTTPS、FTP等。它可以用来发送GET、POST等请求,下载文件,上传数据,甚至处理API调用。由于其灵活性和广......
  • 《使用Gin框架构建分布式应用》阅读笔记:p108-p126
    《用Gin框架构建分布式应用》学习第8天,p108-p126总结,总计18页。一、技术总结1.Redisevictionpolicy(1)什么是evictionpolicy?Theevictionpolicydetermineswhathappenswhenadatabasereachesitsmemorylimit.(2)配置示例在redis.conf中配置。maxmemory-policy......
  • 计算机网络 | 第一章 认识计算机网络 | 26王道考研自用笔记
    一、认识计算机网络1.1计算机网络的定义与分类1.1.1计算机网络的定义计算机网络是一个将众多分散的、自治的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。计算机网络(computernetworking)、互连网(internet)和互连网(Internet)的......
  • 环论笔记(1)
    环设\(R\)是赋予了加法和乘法运算的非空集合.我们称\(R\)是环,如果\((R,+)\)是阿贝尔群,\((R,\cdot)\)是幺半群,且\(R\)的乘法满足对加法的左右分配律.若将\((R,\cdot)\)是幺半群的条件修改为\((R,\cdot)\)是半群,我们称\(R\)是伪环.我们将在某些部分平行地构建出......
  • 2024.10.20心有错做题笔记
    赛时:\(60+50+0+0\)A.bookstore题意:\(m\)套书,\(n\)本书。要求选出两个交集为空的套书的集合,使得两集合中出现的书的种类相同。见到二元组,显然考虑连边。然后发现若有偶环必定有解,01交替染色即可。然后发现剩下来没环和奇环都无法成功。难点在于判偶环。显然可以搞出搜索树......
  • 程序员修炼之道-从小工到专家 读书笔记
    第二章从中了解的一些技巧的学到的内容重复的危害:重复是代码中的最大敌人之一。重复的代码不仅让维护变得困难,还会增加出错的可能性。当一段逻辑或数据在多个地方重复时,修改或修复其中一个地方时很容易忘记同步其他地方,从而导致不一致和错误。培养良好的习惯:强调编写可读、可......
  • 2024/10/22日 日志 --》关于Maven的基础学习 笔记整理
    今天正式步入Maven的学习,以下是基本的笔记整理。点击查看代码--Maven--·Maven是专门用于管理和构建Java项目的工具,它的主要功能有:--·提供了一套标准化的项目结构--·提供了一套标准化的构建流程(编译,测试,打包,发布...)--·提供了一套依赖管理机制--·......
  • MySQL学习笔记
    目录基础篇:通用语法:基础操作:DDL-数据库操作:基本指令:数据类型:数值类型:字符串类型:日期时间类型:表结构修改:DML-增、删、改操作:插入操作:修改、删除操作:DQL-查询操作:DQL-编写顺序:基础查询:条件查询:分组查询:聚合函数:语法:排序查询:分页查询:DQL-执行顺序:DCL-用户管理:DCL-权限控制:函数:字符串......