随笔分类 -  kmp && ac自动机 && manacher

摘要:题意: 就是求是否有一个串 是其它所有串的母串 解析: 把所有的串都加入到trie数中 然后用最长的串去匹配就好了 emm。。开始理解错题意了。。。看成了只要存在一个串是另一个的母串就好。。 然后输出这样的串。。。用后缀数组写完后。。。才发现 理解错了 emm。。 指针的会超时emm。。。然后才学了 阅读全文
posted @ 2018-08-20 19:01 WTSRUVF 阅读(158) 评论(0) 推荐(0)
摘要:题意: 就是用最少的字符把原字符串补成回文串 解析: emm/。。。/网上都是用kmp和后缀数组做的 我没想到这俩的思路。。。emmm。。。 想到了exkmp的 就是原串和逆串匹配一下 注意要保证这个匹配的最大长度 要到原串的结尾 阅读全文
posted @ 2018-08-18 20:09 WTSRUVF 阅读(306) 评论(0) 推荐(0)
摘要:后缀数组专题的 emm。。 就next 循环节。。/ 有后缀数组也可以做 从小到大枚举长度i,如果长度i的子串刚好是重复了len/i次,应该满足len % i == 0和rank[0] - rank[i] == 1(整个串的等级比 i位置开始的后缀的等级大1 (i位置开始的后缀即为比总串低一个等级的 阅读全文
posted @ 2018-08-17 18:44 WTSRUVF 阅读(148) 评论(0) 推荐(0)
摘要:题意: 求出最长公共前后缀 不能重叠 而且 这个前后缀 在串的中间也要出现一次 解析: 再明确一次next数组的意思:完全匹配的最长前后缀长度 求一遍next 然后暴力枚举就好了 阅读全文
posted @ 2018-08-16 10:54 WTSRUVF 阅读(168) 评论(0) 推荐(0)
摘要:题意: 求最长回文串 长度要大于等于2 且输出起点和终点 输出回文串字符 这个字符还是要以给出的字符为起点a 输出 解析: 分析一下s_new串就好了 阅读全文
posted @ 2018-08-16 08:23 WTSRUVF 阅读(183) 评论(0) 推荐(0)
摘要:题意: 求最长回文串。。。但这个回文串要符合从中间到两头 逐个递减 解析: 在扩散的时候加一个判断就好了 阅读全文
posted @ 2018-08-15 22:55 WTSRUVF 阅读(351) 评论(0) 推荐(0)
摘要:题意: 给你一串字符串,每个字符都有一个权值,要求把这个字符串在某点分开,使之成为两个单独的字符串 如果这两个子串某一个是回文串,则权值为那一个串所有的字符权值和 若不是回文串,则权值为0 解析: 先用Manacher算法求出以每个字母为中心的回文串的长度,并计算该字符串的前缀价值和。然后枚举切割点 阅读全文
posted @ 2018-08-15 16:29 WTSRUVF 阅读(260) 评论(0) 推荐(0)
摘要:题意: 给出一个字符串,问这个字符串经过移动后的字典序最小的字符串的首字符位置和字典序最大的字符串的首字符的位置,和能出现多少次最小字典序的字符串和最大字典序的字符串 解析: 能出现多少次就是求整个字符串能出现几次循环 然后就是最大最小表示法。。有点厉害。。。 阅读全文
posted @ 2018-08-15 11:50 WTSRUVF 阅读(171) 评论(0) 推荐(0)
摘要:拓展kmp板题 emm。。。我比较懒 最后一个字母进了vector两个1 不想改了。。。就加了个去重。。。 哈哈 阅读全文
posted @ 2018-08-14 22:37 WTSRUVF 阅读(173) 评论(0) 推荐(0)
摘要:题意: 求一个字符串的每个前缀在这个字符串中出现次数的加和 解析: 默默的骂一句。。。傻xkmp。。博主心里气愤。。。 拓展kmp就好多了。。。 因为拓展kmp每匹配一次 就相当于这些前缀出现了一次 如abcabc abcabc 与 abcabc匹配 为6 这个6就相当于 abcabc abcab 阅读全文
posted @ 2018-08-14 20:04 WTSRUVF 阅读(187) 评论(0) 推荐(0)
摘要:Sample Input Sample Output 阅读全文
posted @ 2018-08-14 17:25 WTSRUVF 阅读(213) 评论(0) 推荐(0)
摘要:题意: 就是求前缀和后缀相同的那个子串的长度 然后从小到大输出 解析: emm。。。网上都用kmp。。。我。。用拓展kmp做的 这就是拓展kmp板题嘛。。。 求出extend数组后 把extend[i] == len - i 的放到vector中 最后排序输出就好了 当然可以用kmp。。emm。。还 阅读全文
posted @ 2018-08-14 16:01 WTSRUVF 阅读(205) 评论(0) 推荐(0)
摘要:考研路茫茫——单词情结 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6853 Accepted Submission(s): 2383 Pro 阅读全文
posted @ 2018-08-13 11:37 WTSRUVF 阅读(299) 评论(0) 推荐(0)
摘要:题意: 给出患病的DNA序列,问序列长度为n的,且不包含患病的DNA序列有多少种 解析: 以给出的患病DNA序列建trie树 患病结点要用flag标记 对于长度为n的序列 位置i有四种 情况A C T G, buid的时候是从祖结点0开始的四种选择,如果tri树中存在某种选择,则顺着走下去,因为要防 阅读全文
posted @ 2018-08-12 21:19 WTSRUVF 阅读(352) 评论(0) 推荐(0)
摘要:当太阳的光辉逐渐被月亮遮蔽,世界失去了光明,大地迎来最黑暗的时刻。。。。在这样的时刻,人们却异常兴奋——我们能在有生之年看到500年一遇的世界奇观,那是多么幸福的事儿啊~~ 但网路上总有那么些网站,开始借着民众的好奇心,打着介绍日食的旗号,大肆传播病毒。小t不幸成为受害者之一。小t如此生气,他决定要 阅读全文
posted @ 2018-08-12 17:18 WTSRUVF 阅读(264) 评论(0) 推荐(0)
摘要:求一个字符串上有多少个匹配的单词 看着卿学姐的板子写的 指针形式: 数组形式: 阅读全文
posted @ 2018-08-12 13:03 WTSRUVF 阅读(142) 评论(0) 推荐(0)
摘要:题意: 给出一个长度不超过1000000的字符串S, 对于该字符串的所有前缀求其周期, 如果周期K >= 2输出起始位置是第几个字符和其周期K 解析: 先求next数组 对于每一个位置如果i % (i-next[i]) == 0 && i /(i - next[i]) >= 2 则成立 即i-nex 阅读全文
posted @ 2018-08-11 20:56 WTSRUVF 阅读(211) 评论(0) 推荐(0)