随笔分类 - 后缀数组
摘要:【链接】h在这里写链接【题意】 【Description】 给你n(nlcp->则减去lcp就是新增加的子串的个数了。 (这部分lcp是什么时候算的不重要,反正你只要知道它之前有被算过就好了); ->回忆一下求n个字符的不同子串的时候的做法,则我们只要找到已经算过的,...
阅读全文
摘要:【链接】h在这里写链接【题意】 给你一个长度为n(n这一点可以将二分的右界设置为d-c+1; 找到一个就返回True即可。 显然前缀越长越不可能,单调性比较显然 复杂度? m*(log2n*常数)的样子? 感觉能卡过去【错的次数】0...
阅读全文
摘要:【链接】h在这里写链接【题意】 给你一个字符串; 让你把它分割成最多k个部分。 然后求出每个部分的字符串里面子串的字典序最大的那一个子串。 然后在这k个子串里面,再选一个字典序最最大的那个。 作为魔法串。 要求这个魔法串的字典序尽可能地小.【题解】...
阅读全文
摘要:【链接】h在这里写链接【题意】接上一篇文章【题解】一个字符串所有不同的子串的个数=∑(len-sa[i]-height[i])【错的次数】0【反思】在这了写反思【代码】#include using namespace std;const int N = 2e3;const int MAX_CHAR...
阅读全文
摘要:【链接】h在这里写链接【题意】 给你一个长度最多为1000的字符串 让你求出一个数x,这个x=这个字符串的不同子串个数;【题解】 后缀数组题。 把原串复制一份,加在原串后面(中间用分隔符分开),这样每个子串都能重复出现一次了,枚举Height的时候就都能枚举到了. 求出...
阅读全文
摘要:【链接】h在这里写链接【题意】 给你n(nusing namespace std;const int N = 1e5 + 500;const int MAX_CHAR = 255;//每个数字的最大值。char s[N + 10];//如果是数字,就写成int s[N+10]就好,从0开始存i...
阅读全文

浙公网安备 33010602011771号