首页 > 其他分享 >字符串哈希

字符串哈希

时间:2023-11-25 11:12:38浏览次数:33  
标签:AC int cin long 哈希 字符串

字符串哈希

字符串哈希就是将一个字符串映射为P进制的整数.

  1. 将一个字符串映射成一个P进制整数
    对于一个长度为n的字符串s,这样定义一个Hash函数:\(h(s)=\sum_{i=1}^{n}s[i] \times p^{n-i}(mod M)\)
    例如,字符串,abc,其哈希值为\(ap^2 + bp^1 + c\)
  2. 如果两个字符串不一样,哈希值却一样,这种现象称为哈希碰撞
  3. 解决哈希碰撞的方法:
    巧妙地设置P和M的值,保证P与M互质.
    P通常取质数131或者13331
    M通常取大整数\(2^{64}\),把哈希函数值的数据类型定义为UUL(unsigned long long),超过则自动移除,等价于取模

练习

Luogu P3370 【模板】字符串哈希
解法一:

标签:AC,int,cin,long,哈希,字符串
From: https://www.cnblogs.com/zshsboke/p/17855310.html

相关文章

  • 十六、C++字符串(一)
    十六、C++字符串(一)1、原生字符串实现将两个字符串拼接//原生字符串实现将两个字符串拼接#include<iostream>#include<locale>intmain(){charstrA[0x10]="123";//定义字符串charstrB[0x10]="456";setlocale(LC_ALL,"chs");charstrC[0......
  • JSON 格式的字符串转换回数组
    要将JSON格式的字符串转换回数组,你可以使用JavaScript的JSON.parse方法。这个方法可以将一个JSON字符串解析成JavaScript对象或数组。对于你的字符串,可以这样操作:假设你有一个JSON字符串str,其内容如下:'[{"goodsCode":"ABC1","qty":12.22},{"goodsCode":"ABC2","q......
  • (字符串)03-验证IP地址
    1importjava.util.*;23publicclassSolution{4/**5*验证IP地址6*@paramIPstring字符串一个IP地址字符串7*@returnstring字符串8*/9publicStringsolve(StringIP){10if(isIPv4(IP))......
  • 字符串存储
    小结1.一个函数中,我们通常会把几个变量的定义声明放在一起,那么当程序编译时,这几个变量在入栈时也是相连着依次入栈,这就会导致出现有时侯字符串输出错误的情况。2.例如下面那么输出结果将会是a="abcdefgh";b="gh";可见b的值也被更改了。3.字符串a和b相连,a的长度其实只有5,b......
  • javaString字符串转换成加减乘除
    字符串不用分割直接进行加减乘除的操作每天一个无用小技巧!try{ScriptEnginejavascript=newScriptEngineManager().getEngineByName("JavaScript");Stringstring="1*3-6+8/2";//这里是强制转换成数据类型Doubledouble=(Double)javascript.eval(string);......
  • emacs在目录里查找字符串
    1.  输入命令   M-xrgrep2.  提示要查找的字符串,请输入   Searchfor(default"xxx_abab"):3.  提示被查找文件的正则条件,请输入    Searchfor"xxx_abab"infiles(default*.[ch]):4.  提示被查找的目录名,请输入    Basedi......
  • Dart通过Ffi来实现字符串类型在Isolate里共享的方法
    其实就是将字符串转换为字节数组,然后用\0作为结尾表示字符串的结束;这样就可以定义一个字节数组作为字符串的容器(当然会有要求字符串不能超长,否则会截断,和C语言的字符串使用方式很像了)而且\0在java,js里打印都是会没有任何显示的(但是会占用字节),所以很适合当作字符串结尾来用(因为\0......
  • 字符串拓展
     1.字符串的三种定义方式: 2.字符串加号拼接 3.字符串格式化   4.字符串格式化++数字精度控制   对表达式进行字符串格式化   ......
  • (字符串)02-最长公共前缀
    1importjava.util.*;23publicclassSolution{4/**5*@paramstrsstring字符串一维数组6*@returnstring字符串7*/8publicStringlongestCommonPrefix(String[]strs){9//判空数组10if(strs.lengt......
  • 模板渲染成标签还是原封不动的字符串 标签(for,for ... empty,if,with,csrf_token)
    模板渲染成标签还是原封不动的字符串:#xss攻击:是什么,如何预防?django已经处理了xss攻击,它的处理原理是什么fromdjango.utils.safestringimportmark_safelink1='<ahref="https://www.baidu.com">点我<a>'link2=mark_safe(link1){link1|safe}  标签:1{%标签名%}......