SAM
GEOTCBRL
?????
展开
-
SAM习题集合
发现对SAM还是相当的不熟悉。。。专门开一个SAM练习好了。。。估计以后还要来个字符串恶补。。。原创 2015-09-11 21:55:06 · 1294 阅读 · 0 评论 -
【GDOI2007】不公平的比赛
题目大意:有A,B两个序列,序列中每个正整数的值大小不超过100,A的数列可形成一个环,求三个奇怪的东西(大雾),具体什么东西嘛,咳咳。我的做法:用SAM建后缀树,逐个求a[i]和b[1]的LCP,累计答案。#include <bits/stdc++.h>using namespace std;#define rep(i,a,b) for(int i=a;i<=b;i++)#define pe原创 2015-10-22 21:16:08 · 1201 阅读 · 0 评论 -
2012 Asia Tianjin Regional Contest - str2int
煎熬的一个晚上。 最后还是忍着,A了这题。 似乎已经完全没有动力了。 I’ve lost almost everything. 回到这题来吧 实际上就是要统计所有不同的字符串子串的和。 建一个SAM,每两个字符串之间插个间隔符,拓扑排序完从root顺着每条边往下走统计答案。注意一开始不能走前导零。 时间复杂度是线性的。#include <bits/stdc++.原创 2015-11-12 22:06:59 · 1073 阅读 · 0 评论 -
【 bzoj 2555 】SubString - LCT SAM
LCT无脑维护SAM的right集大小。 别问我为啥范围开到那么大= =#include <bits/stdc++.h>#define rep(i,a,b) for (int i = a , _ = b ; i <= _ ; i ++)#define per(i,a,b) for (int i = a , _ = b ; i >= _ ; i --)inline int rd() {原创 2016-02-15 23:02:40 · 924 阅读 · 0 评论 -
GDKOI2015 day 1 代码
项链:#include using namespace std;#define rep(i,a,b) for (int i = a , _ = b ; i <= _ ; i ++)#define per(i,a,b) for (int i = a , _ = b ; i >= _ ; i --)#define cr(x) memset(x , 0 , sizeof x)inline原创 2016-02-17 17:52:00 · 1213 阅读 · 0 评论 -
广义后缀自动机与后缀树
广义后缀自动机 就是给一堆字符串,把这些字符串插进一个trie之后,能够接收从某个trie节点走到叶子节点(也就是原来任意一个字符串的后缀)的字符串的自动机。 构造的时候有离线和在线的做法,dwj老司机的blog有code,2015年lyy的集训队论文有证明。原创 2016-03-20 19:41:02 · 4396 阅读 · 1 评论