字符串
小小菜鸡俊
这个作者很懒,什么都没留下…
展开
-
kmp&字典树 模板
kmp: const int maxn=1e5+5; char s[maxn],p[maxn]; int nex[maxn]; int KmpSearch(char* s, char* p) { int i = 0; int j = 0; int sLen = strlen(s); int pLen = strlen(p); while (i < sLen && j < pLen) { //①如果j = -1,或者当前字符匹配成功(即S[i] == P[j])原创 2020-07-27 22:17:06 · 108 阅读 · 0 评论 -
hdu 4622 (hash+“map”)
题目链接:https://vjudge.net/problem/HDU-4622 题意:给定t组字符串每组m条询问——求问每条询问区间内有多少不同的子串。 题解:把每个询问区间的字符串hash一下存图,这样访问的复杂度就只有O(1).至于为什么不能用map查重我也不知道,用map+hash会超时。所以我们需要手动写个map(直接套用kuangbin大佬的模板)。最后只要利用二维前缀和即可输出答案。 Ac 代码: #include<iostream> #include<cstrin原创 2020-07-24 09:57:18 · 234 阅读 · 0 评论 -
Hdu 4821 (字符串hash+map)
题目链接https://vjudge.net/problem/HDU-4821 题意:给定字符串S ,询问用几个子串满足 : 1.长度为n*len 。 2. n个子串都不相同。 题解:倒序hash将S第i位的字符变成ull, 然后对每一个长度为n*len的子串进行判断,这里需要用到Mp查重,先对其每个长度为lende 子串进行判断如果mp.size()==n则符合总数加一,然后再以len为单位滑动,去掉第一个长度为len的串,在末尾加上长度为len的串,判断mp...原创 2020-07-23 12:24:48 · 354 阅读 · 1 评论