雯舞

Love three things int he world -- Manchery

[后缀数组 后缀树] 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;...

2018-01-19 14:07:23

阅读数:166

评论数:0

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

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

2017-04-28 20:29:25

阅读数:288

评论数:0

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

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

2017-04-28 20:27:19

阅读数:262

评论数:0

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

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

2017-04-28 20:25:24

阅读数:328

评论数:0

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

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

2016-11-10 18:03:50

阅读数:234

评论数:0

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

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

2016-07-21 08:32:08

阅读数:208

评论数: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...

2016-04-27 19:45:02

阅读数:286

评论数:0

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

将串反过来 后缀数组 然后用set维护一个序列 插入时修改答案即可 #include #include #include #include using namespace std; typedef long long ll; inline char nc() { static char b...

2016-04-22 10:29:35

阅读数:332

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭