后缀数组
_xgcxgc
一名热爱看番的OIer,
热爱OI,
热爱二次元,
热爱这个世界。
展开
-
[NOI2015]品酒大会 后缀数组+并差集
Descripition 给出一个长度为n的字符串,每个字符有一个权值。 定义两个子串满足r相似,当且仅当两个串长度为r,且字符都相等,那么这两个串的配对权值为开头权值相乘。 先让你求满足0~n-1相似的 子串有多少对。 最大的配对权值。Sample Input 10 ponoiiipoi 2 1 4 7 4 8 3 6 4 7Sample Output 45 5...原创 2018-09-15 18:08:00 · 171 阅读 · 0 评论 -
[HAOI2016]找相同字符 后缀数组+并查集
Description给定两个字符串,求出在两个字符串中各取出一个子串使得这两个子串相同的方案数。两个方案不同当且仅当这两个子串中有一个位置不同。Sample InputaabbbbaaSample Output10感觉这题跟[NOI2015]品酒大会很像。套路题啊,我觉得没什么好说的。#include <cstdio>#include <cstrin...原创 2018-09-18 09:59:09 · 141 阅读 · 0 评论 -
BZOJ3277: 串 后缀数组+st表
Description现在给定你n个字符串,询问每个字符串有多少子串(不包括空串)是所有n个字符串中至少k个字符串的子串(注意包括本身)。Sample Input3 1abcaabSample Output6 1 3考虑后缀数组来做。把这些串串起来做一遍后缀数组。对于height数组,我们求一个st表,用于求LCP。然后对于每一个后缀i,我们求出一个L[i],L[i]...原创 2018-09-19 09:24:44 · 161 阅读 · 0 评论 -
[AHOI2013]差异 后缀数组+并查集
Description给一个长度为n的字符串,Ti表示i为后缀的字符串,求:∑1<=j<i<=nlen(Ti)+len(Tj)−2∗LCP(Ti,Tj)\sum_{1<=j<i<=n}len(Ti)+len(Tj)-2*LCP(Ti,Tj)1<=原创 2018-09-20 11:07:05 · 194 阅读 · 0 评论 -
SA-IS学习笔记
后缀数组SA-ISSA-IS排序是基于诱导排序这种思想,将问题规模缩小,解决更小的问题,快速解决原问题的算法。首先给出一些定义:一 可能用到的用大写字母表示字符串,小写字母表示字符或位置。字符串最后用#表示。在字符串AAA中,suffix(A,i)suffix(A,i)suffix(A,i)表示长度为i的后缀。二 后缀类型在字符串AAA中,对于每一个后缀,我们赋一个类型。若suf...原创 2018-12-26 10:37:44 · 1296 阅读 · 2 评论 -
codeforces 1063F String Journey dp+后缀数组
Description有一个长度为nnn的字符串sss。定义一种划分为kkk个字符串构成的序列tk{tk}tk,满足:对于i>1i > 1i>1,tititi 是ti−1ti−1ti−1的子串。s=u1t1u2t2⋅⋅⋅uktkuk+1s = u1t1u2t2 · · · uktkuk+1s=u1t1u2t2⋅⋅⋅uktkuk+1,其中uiuiui是任意字符...原创 2019-01-14 20:32:06 · 185 阅读 · 1 评论 -
HAOI2018题解
这一年搞了我好久。。。但还都是比较可做的。奇怪的背包对于每一个物品iii,他能拼出的物品ddd满足d∣gcd(P,V[i])d|gcd(P,V[i])d∣gcd(P,V[i]),所以一个物品只需要对PPP去gcdgcdgcd即可。根据蜚蜀定理你一堆物品能拼出的物品为这堆物品的gcdgcdgcd的倍数。然后你做一个dpdpdp表示,f[i][j]f[i][j]f[i][j]表示前iii个...原创 2019-03-05 17:02:30 · 263 阅读 · 0 评论