当前搜索:

[后缀数组 后缀树] Codechef January Challenge 2018 #KILLKTH Killjee and k-th letter

建出后缀树,记录每个子串的出现次数,然后二分下答案在哪个子串中就好了 退役选手不会写后缀自动机 #include #include #include #include #define pb push_back using namespace std; typedef long long ll;...
阅读(150) 评论(0)

[后缀数组] BZOJ 2119 股市的预测

类似 [Noi2016]优秀的拆分枚举 A 的长度 l,把字符串中所有下标为 l 倍数的位置标记出来。左端点 A 的部分一定恰好包含一个标记点。 枚举每一个标记点 i,它的对应点是 i+l+m,后缀数组求出往前 最多对应相同的位数 L 和往后最多位数 R。 贡献为 max(0,min(L-1...
阅读(279) 评论(0)

[后缀数组 主席树] BZOJ 4556 [Tjoi2016&Heoi2016]字符串

二分答案 t,在后缀数组上找到与 [c,d] LCP 大于等于 t 的区间 [l,r]。 相当于询问 [l,r] 中是否存在 [a,b − t + 1] 里的数字 主席树#include<cstdio> #include<cstdlib> #include<alg...
阅读(255) 评论(0)

[后缀数组 贪心] BZOJ 4278 [ONTAK2015]Tasowanie

两个指针 显然小的那个先放 如果一样 比后一个 再一样 再后 然后就转化成比较后缀的字典序了#include<cstdio> #include<cstdlib> #include<algorithm> using namespace std;inline cha...
阅读(320) 评论(0)

[后缀数组 枚举 字符串分段] BZOJ 4650 [Noi2016]优秀的拆分

先求出所有的双倍字串 然后再乱来 我们枚举一半的长度 然后把整个字符串按照长度l分段  起点分别为 s[1] s[l+1] s[2l+1]  ... 分段后记作 S1 S2 S3 ..... 那么双倍的串一定会包含其中两个 我们求 Si Si-1的LCS  Si Si+1的LCP ...
阅读(225) 评论(0)

[AC自动机 fail树 || 后缀数组] BZOJ 3172 [Tjoi2013]单词

只有我一个人觉得题意看不懂么 fail树的做法 首先我们将给出的n个串构建AC自动机 朴素的做法是对于每个串将这个串每个节点沿着fail指针扫一遍,将路径上的所有点的cnt++ 但是这样做会TLE 我们不妨反向思考 fail指针反向后是一棵树 沿着fail指针扫一遍就是沿着树边向根扫...
阅读(201) 评论(0)

[SA] BZOJ 2251 [2010Beijing Wc]外星联络

见后缀数组后暴力就好了 考前练版子,竟然WA了几发 #include #include #include #include using namespace std; inline char nc() { static char buf[100000],*p1=buf,*p2=buf; i...
阅读(282) 评论(0)

[后缀数组 set] BZOJ 4516 [Sdoi2016]生成魔咒

将串反过来 后缀数组 然后用set维护一个序列 插入时修改答案即可 #include #include #include #include using namespace std; typedef long long ll; inline char nc() { static char b...
阅读(326) 评论(0)
    个人资料
    持之以恒
    等级:
    访问量: 40万+
    积分: 1万+
    排名: 1233
    文章分类
    最新评论