上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 27 下一页
摘要: 题解 SA+并查集 把ht按大小倒序加入,并查集合并维护答案的变化; SAM 翻转串,求出SAM的parent树就是后缀树,两个串的最长公共后缀是他们lca的len值; 考率一个节点x,那么它子树里的后缀点两两都是len[x]相似的,所以在prent树上做dp即可; 第二问的统计比较麻烦,可以直接写 阅读全文
posted @ 2019-01-06 21:40 大米饼 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 题解: 对病毒串建立ac自动机; 有一个无限长的串等价于可以一直在自动机上匹配,等价于自动机上的转移有环; 当然前提是去掉病毒节点的fail子树; 写一个dfs记录是否在栈中,来过没有找到就不必再来了再记录一个vis保证复杂度; 然而。。。。。。我在找环的时候呆了很久,最后写了tarjan; 如果你 阅读全文
posted @ 2019-01-06 21:02 大米饼 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 题解们: 1.首先可以被很多暴力给搞过去;我以前也是这样水过去的 2.ac自动机 2.1 抽离fail树 对点名建自动机,建$fail$树的时候只保留询问节点; 对于一个喵,子串==在自动机里匹配到的所有节点的$fail$祖先并 把姓和名都放到里面去跑,得到所有的点,需要把这些点在新的$fail$树 阅读全文
posted @ 2019-01-06 08:28 大米饼 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 定义: 一种用来存储一个串的所有回文子串的结构; 本质是两颗trie,每个节点存储回文子串的一半,用来代表整个回文串; 两颗是由于回文串长度有奇偶,所以需要奇数节点根和偶数节点根; 每个节点的fail指针表示节点对应回文子串的最大回文后缀节点; 也就是说,x->y说明了y所代表的回文串是x所代表的回 阅读全文
posted @ 2019-01-04 22:14 大米饼 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 题解: 读了半个小时题。。。首先明确题意:求$S$分成至多$k$个串,每个串的子串的最大字典序的最大字典序(要选两次最大)最小 求出sa和ht,本质不同的子串的个数等于总个数减去$sa$里面前后相同的个数:$sum = \sum len - sa[i] - ht[i] $ 因为在后缀数组中本质相同的 阅读全文
posted @ 2019-01-04 21:48 大米饼 阅读(253) 评论(0) 推荐(1) 编辑
摘要: 题解: 分成两部分来求,$\sum (len(T_{i})+len(T_{j}))$显然是:$\frac{(N-1)N(N+1)}{2}$ 另外一部分即所有后缀的$lcp$之和的二倍,枚举每一个$sa[i]$; 这样对于每个j从小到大的$sa[j](j<i)$来说和$sa[i]$的$lcp$是连续的 阅读全文
posted @ 2019-01-04 21:34 大米饼 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 定义 解决文本串和多个模式串匹配的问题; 本质是由多个模式串形成的一个字典树,由tie的意义知道:trie上的每一个节点都是一个模式串的前缀; 在trie上加入fail边,一个节点fail边指向这个节点所代表的前缀的最长后缀节点(除开自身的后缀); 也就是说如果x->y,那么y所代表的串是x所代表的 阅读全文
posted @ 2019-01-03 22:01 大米饼 阅读(1343) 评论(0) 推荐(3) 编辑
摘要: 用途 用途 给定一个长度为n,可旋转的字符串环,求从哪个位置断开的长度为n的字符串字典序最小/大(以最小为例,最大同理) 算法描述 令i=0,j=1表示最小的字符串可能的位置; 找到一个k使得s[i+1]==s[j+1],s[i+2]==s[j+2] ,..., s[i+k-1]==s[j+k-1] 阅读全文
posted @ 2019-01-01 22:18 大米饼 阅读(420) 评论(2) 推荐(2) 编辑
摘要: 题解: 显然需要分类讨论了,首先理解k==0即原图时按照dfs序来说 , 每条边至少走两次; k==1,相当于可以省去dfs回溯时第二次走过某条路径的浪费,所以答案是k==0的答案-直径 ; k==2,和k==1同理,答案是k==0时的答案-两条边不相交的链的最大和,先做一次直径,将直径上的边边权都 阅读全文
posted @ 2019-01-01 16:23 大米饼 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 题解: 题解: 首先注意到起点和终点都是加油站; 假设中途经过某个非加油站的点u,u连到v,离u最近的加油站是x,那么从u到x加油后回到u,再到v一定不比直接从u到v差; 因为u一定从某个加油站来,设最后经过的加油站为y,u点油量为B1 = b - dis(y,u),而如果u不可以走到x一定不能走到 阅读全文
posted @ 2019-01-01 15:44 大米饼 阅读(238) 评论(0) 推荐(1) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 27 下一页