![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hash
EMber _
人但有追求,世界亦会让路。
展开
-
JZOJ3870 双HASH
题目就不说了。 早上打的时候随便XJBHASH了一发,结果不知道是什么原因错了一个点,懵比.jpg。 后来发现是冲突了,改了很多个质数都WA,没办法只能双hash不然搞不过去。。很久没打双hash不会打,结果被人嘲讽一波,心情复杂。#include<algorithm>#include<cmath>#include<cstring>#include<cstdio>#include<cst原创 2017-01-16 14:41:57 · 370 阅读 · 0 评论 -
bzoj2258: pku2758 Checking the Text 文本校对 hash+二分
题意:给你一段文本 要求比对从文本中某两个位置开始能匹配的最大长度是多少。可以插入字符。 一开始不看范围感觉这题巨难,死刚SAM搞不出来,然后看看范围感觉自己被逗了。。 hash+二分,记录一下字符位置就好了,由于插入很少暴力更新hash数组即可。 自然溢出。 #include<cstdio>#include<algorithm>#include<cstring>#define fo(i原创 2017-11-05 21:52:41 · 266 阅读 · 0 评论 -
JZOJ5454. 【NOIP2017提高A组冲刺11.5】仔细的检查 树hash
Descriptionnodgd家里种了一棵树,有一天nodgd比较无聊,就把这棵树画在了一张纸上。另一天nodgd更无聊,就又画了一张。 这时nodgd发现,两次画的顺序是不一样的,这就导致了原本的某一个节点��0在第一幅图中编号为��1,在第二副图中编号为��2。 于是,nodgd决定检查一下他画出的两棵树到底是不是一样的。nodgd已经给每棵树的节点都从1到��进行了编号,即每棵树有��个原创 2017-11-05 16:51:05 · 667 阅读 · 0 评论 -
bzoj1567[JSOI2008]Blue Mary的战役地图 二分+矩阵hash
题意:给出两个矩阵,求最大重合。 做出两个矩阵的hash以后二分最大正方形的边长,基础hash。 模数不好设,用自然溢出就好。#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)u原创 2017-11-03 20:31:34 · 221 阅读 · 0 评论 -
bzoj3555: [Ctsc2014]企鹅QQ hash
题意:给出n个相同长度的子串,问有多少对只有一个位置不同。 hash练手题。。算出前缀后缀的hash以后,枚举哪一个位置不同,然后统计就好了。 注意不能%,或者质数太小都会冲突。#include<cstdio>#include<cstring>#include<algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,原创 2017-10-23 08:25:12 · 185 阅读 · 0 评论 -
JZOJ5397. 【NOIP2017提高A组模拟10.6】Biology trie+LCA/哈希
题意:求一些指定串的最长公共后缀,动态加入。傻逼题,被题意坑了,以为要求最长公共LCS。 hash入门题,二分长度以后判断一下是否所有串都相同。 trie+LCA也可以,不过麻烦一点。 trie+LCA:#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(int i=a;i<=b;i++)#原创 2017-10-06 15:09:46 · 319 阅读 · 0 评论 -
bzoj3198 [Sdoi2013]spring 哈希表+容斥
题意:有n个六元组,给出一个数k,要求这n个组中有多少对之间有k元是相同的。/这种玩意儿一眼容斥啊。 首先2^6枚举是哪k位,然后用hash求出在这种情况下有多少对是相同的,设为f[i]. 那么答案就是f[k]∗Ckk−f[k+1]∗Ckk+1....f[k]*C_{k}^{k}-f[k+1]*C_{k+1}^{k}.... 注意到容斥系数是组合数,原因是对应i和i+1会有交集,明显不能只是正原创 2017-10-28 10:58:18 · 208 阅读 · 0 评论 -
bzoj2795[Poi2012]A Horrible Poem 暴力hash
题意:给你一个串,一些询问,求l,r子串内的最小循环节。|s|<=5e5,q<=2e6; 询问那么大,肯定不能搞事,然后我就想到了SAM。。。。。。 SAM明显搞不了啊,然后就萎了,想不到该咋搞。。 事实上暴力hash就可以了。。。 首先hash一波,枚举循环节长度以后,暴力O(1)判断循环节。 循环节长度不能无脑枚举,由于是循环节,那肯定是n的约数才有可能,所以根号搞一波。 但这样还是原创 2017-09-28 22:18:28 · 351 阅读 · 0 评论 -
hdu 1800
题意:给你一些数字,有前导0,问你出现次数最多的数是多少次。 题解:直接hash就好了,比较模板,拿来复习hash的。#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#include<iostream>#define fo(i,a,b) for(int i=a;i<=b;i++)const int m原创 2017-01-16 15:06:51 · 228 阅读 · 0 评论 -
bzoj4337: BJOI2015 树的同构 树hash
题意:给出n棵树,问有哪些树是同构的。 注意到树很多,直接像普通的树hash是行不通的,因为哪怕是自然溢出做模数的冲突概率也极大,正确的做法是对于不同的子树使用不同的base去做hash,就可以将冲突的概率降到最低。#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(int i=a;i<=b;i+原创 2017-11-06 15:38:15 · 344 阅读 · 0 评论