hash
SC.ldxcaicai
我很菜=_=
展开
-
2018.07.17 牛奶模式Milk Patterns(二分+hash)
传送门 好的一道简单字符串。这里收集了几种经典做法:SAM,不想写。后缀数组+二分,不想写后缀数组+单调队列,不想写hash+二分,for循哈希,天下无敌!于是妥妥的hash代码如下:#include<bits/stdc++.h>#define N 20005#define Base 20001using namespace std;inline int...原创 2018-07-17 14:34:21 · 282 阅读 · 0 评论 -
bzoj2085: [Poi2010]Hamsters(hash+矩阵快速幂)
传送门题意:给定n个长度总和不超过1e5的字符串,求一个最短的母串,使所有字符串的出现次数之和=m 这n个字符串保证不互相包含,n≤200思路:由于保证字符串两两不相互包含。因此我们可以考虑dpdpdp。fi,jf_{i,j}fi,j表示所有字符串出现次数之和为iii,结尾的字符串为第jjj个整个字符串的最短长度。然后可以枚举字符串转移。发现可以写成矩阵转移的形式然后用矩阵快速幂优...原创 2019-07-13 22:55:35 · 160 阅读 · 0 评论 -
bzoj2061: Country(hash+记忆化搜索)
传送门题意:有n个字符串变量(n<=26),它们可以包含其他的字符串变量,也可以包含小写字母。(这些变量用大写字母表示)。举个栗子:A=greatglorycorrect B=xx C=leadusgo D=ABC E=DDDDdjh F=EEEEEgoodbye数据保证定义是无环的。给定一个小写字母组成的模式串,求某一个变量所代表的字符串里这个模式串出现了几次。模式串长度,每条...原创 2019-07-13 22:50:33 · 312 阅读 · 0 评论 -
bzoj4650: [Noi2016]优秀的拆分(二分+hash)
传送门题意:给一个字符串sss。定义一个字符串t=AABBt=AABBt=AABB是一种优秀的拆分,求sss的所有字串的优秀拆分数之和。思路:考虑一下O(n2)O(n^2)O(n2)暴力,枚举AA∣BBAA|BBAA∣BB中间的竖杠,然后枚举A∣AA|AA∣A之间的竖杠即可。然后思考如何优化:考虑当你确定了B的开始位置,你所关注的仅仅是这个开始位置开始的AA形式的拆分有多少个。那么...原创 2019-07-13 22:43:04 · 133 阅读 · 0 评论 -
bzoj2081: [Poi2010]Beads(hash)
传送门世纪水题???(大雾题意:给定一个串。你可以把这个串分成若干段,每块都有k个字符。(如果最后一段字符数少于k,则丢掉不要)对于不同的k,你能得到不同的段。两个段是本质相同的,当且仅当它们相等或将其中一个段翻转后它们相等。你现在想知道:能够获得的最多的本质不同段数;能获得这个最大值的k的数目;能获得这个最大值的所有k。思路:暴力枚举段的长度,然后用hash+sethash+set...原创 2019-07-13 22:23:13 · 151 阅读 · 0 评论 -
bzoj3790: 神奇项链(二分+hash)
传送门题意:有两个机器:一个可以生成一个回文串,另一个可以把两个串拼接起来。如果(令待拼接的两个串为A,B)A的一个后缀和B的一个前缀相同,那么可以将这个重复部分重叠。给一个目标串,求为了得到这个目标串,至少需要使用多少次第二个机器。思路:用manacher/manacher/manacher/二分+hashhashhash求出极长回文串然后贪心即可。代码:#include<b...原创 2019-07-13 22:20:12 · 137 阅读 · 0 评论 -
bzoj2803: [Poi2012]Prefixuffix(hash+性质推导)
题意:给出一个长度为n的串S,求满足下面条件的最大的L:L<=n/2S的L前缀和S的L后缀是循环同构的。思路:设前缀为aaa,后缀为bbb,如果a,ba,ba,b循环同构,那么a,ba,ba,b是由一个字符串加上两个borderborderborder形成的。即如下图所示:s1,i=sl+1,n,si+1,j=sk,ls_{1,i}=s_{l+1,n},s_{i+1,j}...原创 2019-07-13 22:08:41 · 139 阅读 · 0 评论 -
2018.10.16 NOIP模拟 长者(主席树+hash)
传送门考试的时候开始sb的以为需要可持久化trietrietrie树,发现建树时空都是O(n2)O(n^2)O(n2)的。然后发现由于每次只从原来的字符串改一个字符。因此直接主席树维护区间hashhashhash值。sortsortsort的时候在主席树上二分比大小。如果左子树hashhashhash值相同递归比右子树,否则走左子树,因为左子树的字典序的贡献更大。代码...原创 2018-10-16 14:25:33 · 289 阅读 · 0 评论 -
2018.10.12 NOIP训练 01 串(倍增+hash)
传送门一道挺不错的倍增。其实就是处理出每个数连向的下一个数。由于每个点只会出去一条边,所以倍增就可以了。开始和zxyzxyzxy口胡了一波O(n+m)O(n+m)O(n+m)假算法,后来发现如果是mmm个自环就咕咕了。哎还是太年轻了啊。另外把ststst打成了hashhashhash以及没开longlonglong longlonglong都能过样例真是神奇。代码...原创 2018-10-12 23:44:40 · 210 阅读 · 0 评论 -
CSP-S模拟 环球巡演(hash表+贪心)
传送门把所有关键点提出来处理,然后分成相邻两个数分别贪心计算答案最后加起来。现在把问题转化成了如下模型:给你一个010101序列,你可以进行如下几种操作(四种操作代价不同):删去一个1删去一个0删去一个1,并允许在其后面删去一个0删去一个0,并允许在其后面删去一个1然后比比四种操作的代价讨论一下即可。代码:#include<bits/stdc++.h>#def...原创 2019-07-25 18:15:35 · 216 阅读 · 0 评论