hash
放过@
这个作者很懒,什么都没留下…
展开
-
字符串——hash在acm中的运用(持续更新)
hash在acm中的运用(持续更新)第一题链接:UVA11475题意:让你在字符串后面加字符,使它成为最短的回文串,如xyz, ans为xyzyx题解:扩k,马拉车,后缀数组都可以,但是用hash直接正反hash一下判断当前hash是否一样就行,注意hash冲突可以双hash,反正时间也够//https://vjudge.net/problem/UVA-11475#include &...原创 2020-01-14 16:25:15 · 456 阅读 · 0 评论 -
字符串——常用进制hash
以下都只对一个字符串hash,h[n]为该串的hash值单hashtypedef unsigned long long ULL;const ULL base = 13131;//2333333const ULL mod = 1e9+7;const int maxn = 1e5+50;ULL h[maxn], p[maxn];char a[maxn];int n;void in...原创 2020-01-14 11:15:41 · 197 阅读 · 1 评论 -
字符串——字符串hash的子串hash值
常用的进制hash满足一些性质所有可以O(1) 查询子串或者减去某些位置的子串的hash值。 scanf("%d", &n); scanf("%s", a+1); p[0] = 1, h[0] = 0; for(int i = 1; i <= n; i++){ h[i] = h[i-1]*base + a[i] - 'A'; ...原创 2020-01-14 10:52:11 · 1833 阅读 · 1 评论 -
生日悖论
生日悖论生日悖论问题:不考虑出生年份,问:一个房间中至少多少人,才能使其中两个人生日相同的概率达到50%?解: 假设一年有 n 天,屋子中有 k 人,用整数 1, 2, …, k 对这些人进行编号。假定每个人的生日均匀分布于 n 天之中,且两个人的生日相互独立。当k(k−1)≥2nln2时,k 个人两个人生日相同的概率达到 50%, 代入 n = 365, 即至少23个人同出一屋,至少有两...原创 2020-01-13 20:46:00 · 611 阅读 · 0 评论 -
字符串——BZOJ3098: Hash Killer II(构造)
BZOJ3098: Hash Killer II(构造)链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3098题意:构造一个可以卡掉mod = 1e9+7,base随意的hash,数据n l str,使长度为n的str中的长度为l的两个以上的字串起hash冲突根据生日悖论,xjb构造#include <bits/stdc++....原创 2020-01-13 20:40:46 · 331 阅读 · 0 评论 -
字符串——BZOJ 3097: Hash Killer I【构造题,思维题】
BZOJ 3097: Hash Killer I【构造题,思维题】题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3097题意:让你出一组数据可以卡掉自然溢出的hash,数据包括n 和 l 以及str,长度为n字符串的l长字串存在hash冲突。(1) 当base为偶数时,若两个字符串后面的64及以上的字符串相同时,hash值相同。(...原创 2020-01-13 20:23:43 · 1070 阅读 · 0 评论