字符串
行走天涯的豆沙包
人生天地间,忽如远行客。
展开
-
kmp——「CF126B」Password
题解: 题目让我们找到一个串既是前缀也是后缀,并且在这个串的中间也出现过。那么我们从第一个条件就可以明白我们要使用的方法的就是KMP,KMP中的next数组就是前缀等于后缀的长度。所以我们先把我们的next数组处理出来,然后枚举我们的中间串的长度,从长的往小的枚举。并且next每跳一次代表我们前缀后缀的长度减小也就是我们中间串的长度减小了。 #include <bits/stdc++.h> using namespace std; char s[1000100]; int n, f[100010原创 2020-07-27 20:08:42 · 334 阅读 · 0 评论 -
字符串哈希,KMP——Compress Words
传送门 题解: 法一使用字符串哈希,我们很清楚对于父串的后缀哈希值等于匹配串的哈希值的时候就是需要减去的。所以这里父串使用反哈希,子串正向哈希就行了。 #include <bits/stdc++.h> using namespace std; typedef unsigned long long ull; const ull mod=999999998; const ull base=...原创 2020-04-29 22:21:59 · 223 阅读 · 0 评论 -
字符串——字符串哈希模板题
传送门 板子题就不写题解了。 #include <bits/stdc++.h> using namespace std; typedef unsigned long long ull; const ull mod=212370440130137957ll; const ull base=131,pre=233317; const int N=1e4+7; ull a[N]; ull g...原创 2020-04-29 13:10:16 · 251 阅读 · 0 评论