
Hash
逐梦起航-带梦飞翔
为了更加长远的快乐!
展开
-
bzoj2351 [BeiJing2011]Matrix(二维hash)
题意给定一个M行N列的01矩阵,以及Q个A行B列的01矩阵,你需要求出这Q个矩阵哪些在原矩阵中出现过。 我的想法hash在不知道二维hash前,我想把一个二维矩阵转为一维的序列再hash。实现中却出现了除法,一想发现hash不能除。因为hash值本身就是模数,除法不满足同余定律。所以hash值只能通过加减乘来变化。代码放着,哪位神犇做出来了也告诉我一声。WA代码#i...原创 2018-08-13 10:58:56 · 303 阅读 · 0 评论 -
poj3349 Snowflake Snow Snowflakes(Hash)
题意给你n朵雪花,每朵雪花有6片花瓣,每片花瓣有一个权值。花瓣的权值可以从任意位置的顺时针或逆时针来读,判断是否有两朵相同的雪花。 题解1暴力hash我们约定,一朵雪花的hash值为,P取质数99991。对于相同的hash,我们将其各边用邻接表记录,对其中进行暴力比对:枚举起点,顺着、逆着各判一次。 代码#include<cstdio>#include...原创 2018-08-08 20:20:02 · 368 阅读 · 0 评论 -
CH1401 兔子与兔子(Hash)
题意在一个字符串中,请判断字符串[l1,r1]与[l2,r2]是否相同。 题解Hash判断相同?正是用hash的地方!我们用前缀的形式求出[1,i]的hash值。,其实就是把字符串看成一个P进制的数(P这里取了131)。如果要求[l,r]的hash值,我们可以用hash[1,r]减去hash[1,l-1]。因为在变到hash[l,r]中,hash[1,l-1]乘了P^(r-l...原创 2018-08-08 20:41:53 · 491 阅读 · 0 评论 -
poj3974 Palindrome(Hash)(二分)
题意给定一个长度为n的字符串,求它的最长回文串。 题解1Manachar这个是正正解,时间复杂度仅为O(n),但不作为这次的主讲。 题解2hash+二分又是一道判断子串是否相同的问题,hash这个O(n)预处理,O(1)判断的绝B首选。但是这题需要顺着hash一次,逆着hash一次,因为回文串讲的是对称。实现时,枚举一个点或者两个点作为中心,然后向两边扩展。扩展...原创 2018-08-08 20:58:30 · 498 阅读 · 0 评论 -
CH1402 后缀数组(Hash)(二分)(排序)
题意用hash、快排、二分来求后缀数组中的sa和height。 题解hash+快排+二分sa数组的朴素求法是用一个string存下来,然后直接对string排序,但这样会爆空间。如果对两个后缀进行逐字的比较复杂度会大大超出。聪明的出题人想到了用二分+hash的方式来比较字符串的大小。hash的作用还是判断两个子串是否相等,二分的作用是求出第一个不相同的字符,比较这个字符即可得出...原创 2018-08-08 21:14:06 · 495 阅读 · 0 评论 -
洛谷2852 [USACO06DEC]牛奶模式Milk Patterns(Hash)(二分)(排序)
题目农夫John发现他的奶牛产奶的质量一直在变动。经过细致的调查,他发现:虽然他不能预见明天产奶的质量,但连续的若干天的质量有很多重叠。我们称之为一个“模式”。 John的牛奶按质量可以被赋予一个0到1000000之间的数。并且John记录了N(1<=N<=20000)天的牛奶质量值。他想知道最长的出现了至少K(2<=K<=N)次的模式的长度。比如1 2 3 2 3 2...原创 2018-08-08 21:52:20 · 631 阅读 · 0 评论