
字符串
Richard_for_OI
老年退役选手orz
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
字符串系列(四)——后缀自动机的小论文总结
好久没有更新这个系列了。这次带来后缀自动机的一些理解与总结,不是很全,因为做的题还尚且太少。日后会通过普通的题解博客来完善。放心,过几天会更新AC自动机的。...原创 2018-05-09 21:47:38 · 406 阅读 · 0 评论 -
bzoj2555: SubString 后缀自动机+LCT
2555: SubStringTime Limit: 30 Sec Memory Limit: 512 MBSubmit: 4189 Solved: 1284[Submit][Status][Discuss]Description懒得写背景了,给你一个字符串init,要求你支持两个操作(1):在当前字符串的后面插入一个字符串(2):询问字符串s在当前字符串中出现了几次?(作为连续子串)你必须在...原创 2018-06-14 13:14:00 · 323 阅读 · 0 评论 -
洛谷P2336 [SCOI2012]喵星球上的点名
用广义SAM写的。特意加了注释。感觉对SAM的感觉又深入了一些。#include <cstdio>#include <map>#define N 100010using namespace std;inline char gc() { static char now[1<<16], *S, *T; if(S == T) {T = (S =...原创 2018-05-22 22:02:17 · 312 阅读 · 0 评论 -
TJOI2018 d2t1 碱基序列
自古字符串题目,不是后缀就是dp......f[i][j]表示匹配到第i个串,已经匹配到了主串的第j位时的方案数。初值:f[0][x] = 0 (x∈[0, 10000])用哈希去判是否能更新。如果保险起见可以用KMP(单模式串匹配问题)。#include <cstdio>#include <cstring>#define mod 1000000007char s[1...原创 2018-05-15 21:06:11 · 447 阅读 · 0 评论 -
【NOI2011】阿狸的打字机——AC自动机
除做过一道dfs序维护fail树之外,做这道题还需要想到——将询问离线,用邻接表储存,即每次把所有y相同的处理。From Hzwer:每次查询(x,y),即为查询自动机上path(root->y)的所有结点中,有多少个在x的子树中。树状数组维护区间和。反正这正解我是给跪了。#include <cstdio>#include <cstring>#include &l...原创 2018-05-25 20:38:19 · 343 阅读 · 0 评论 -
字符串系列(五)——多模式串匹配强有力的工具AC自动机
之前太年轻,觉得学了SAM、Hash就不再需要AC自动机了。但Hash的弊病就是要挨位尝试,其时间复杂度O(nm)无法承受。而SAM的弊病就是其占用的空间过大(多乘了2),并且速度也很慢!!!!!(复杂度同Hash)一般AC自动机题目串长都会给到1e6,SAM很轻易就会挂掉。而我们今天的主角AC自动机,复杂度仅仅是所有串的长度和。而对于字典树,也完全没有必要开太大的空间。这里给出一个字典树全字符缩...原创 2018-05-21 21:46:44 · 325 阅读 · 0 评论 -
※bzoj1009
这题真心是挺难的!!!至少看solution前是这样的。题目的n到10的9次方,应该是要给它加个log才行。坦白说我的第一感觉以为这是一道字符串题。BUT!我字符串学的比较差,也没继续想。现在给出解法:首先是最神的dp函数定义:f[i][j]表示——匹配到主串的第i位为止(长的叫主串,短的叫模式串,这个是KMP算法里给出的定义),恰匹配上了模式串的第j位的总可能数。接下来再给出原创 2017-12-10 19:44:06 · 608 阅读 · 2 评论 -
字符串系列(一)——伟大的字符串Hash
在刷省选时,我们时常会遇到一些字符串的题目。也有许多的算法供我们选择,如:KMP、拓展KMP、最小表示法、Manacher、Trie、后缀数组、后缀自动机、AC自动机(树上KMP)等等等,日后我会逐一填坑。今天先来介绍一个最暴力且用途最大的——字符串Hash。首先,要想学好Hash,必须要明白一件事:两个元素若全等,其哈希值必定也相等;但哈希值相等,两个元素未必全等(哈希值相等是两个元素全等的必要...原创 2018-02-10 21:19:31 · 10525 阅读 · 0 评论 -
字符串系列(二)——“万金油”后缀数组
学习后缀数组有感 (原创,转载请注明出处) 在做一些串的问题时,因为其本身处理比较麻烦,光是比较就要耗费O(n²)的复杂度。因此我们使用后缀数组来进行复杂度的简化。 首先要明确,后缀数组是一种工具,可以帮我们得到一些数组。而后期要根据我们自身对于这些数组含义、性质的理解,去运用它们解出题目。 先来看一个问题:现给定一字符串长度为n,把它的后缀们按...原创 2018-02-10 21:38:00 · 499 阅读 · 0 评论 -
字符串系列(三)——匹配算法KMP
KMP算法,是处理字符串模式匹配问题的。能够在线性时间判断模式串在主串中出现的次数(如果根本不是子串,输出0)。这个时候我要再安利一手Hash。Hash也能在线性时间解决!!!!(众人:你不是要说KMP吗)啊对,让我们来看看今天的主角。KMP算法的核心,就是其next数组,这个next数组往往可以解决许多问题。现给出定义:next[i]表示模式串(短的内个)中以i结尾的非前缀子串与A的前缀能匹配上...原创 2018-02-11 11:36:30 · 330 阅读 · 0 评论 -
CTSC2012 熟悉的文章
哈哈哈哈第一次做CTSC的题超开心,感觉一下子就有档次了许多。这题的数据范围对我这种不会算空间的蒟蒻就是个迷。对于 100%的测试数据,输入文件的长度不超过 1100000 字节呵。做法:①把所有作文库连起来,每两个中间用2隔开建SAM②作文串在SAM上跑一跑,计算出以每一个位置为结尾,最多能匹配多长。即,val[i]表示,S[1…i]中与作文库能匹配的最长suffix的长度。③由于这题的答案具有...原创 2018-04-12 22:05:13 · 351 阅读 · 0 评论 -
字符串系列(六)——回文自动机
想不到吧我还在更新哈哈哈哈哈。 今天带来一个2014年发明的算法——回文自动机。 既然写了这篇博客,那我就说得全面一些。回文自动机这个算法也称回文树。 可以类比一些其他的自动机,回文自动机也是有许多节点、许多next、许多fail的。1、节点的那些事每个节点都表示一个回文子串(注意了啊,只表示一个,SAM才是一类),且任意两个节点所表示的串必定不全等。(可以用数归证明...原创 2018-06-15 17:48:36 · 492 阅读 · 0 评论