随笔分类 - ACM/文本处理
摘要:E. Misha and LCP on Tree Problem's Link Mean: 给出一棵树,每个结点上有一个字母。每个询问给出两个路径,问这两个路径的串的最长公共前缀。 analyse: 做法:树链剖分+后缀数组. 记录每条链的串,正反都需要标记,组成一个长串. 然后记录每条链对应的串在
阅读全文
摘要:Kefa and Watch Problem's Link Mean: 给你一个长度为n的字符串s,有两种操作: 1 L R C : 把s[l,r]全部变为c; 2 L R d : 询问s[l,r]是否是周期为d的重复串。 analyse: n最大为1e5,且m+k最大也为1e5,这就要求操作1和操
阅读全文
摘要:Life Forms Problem's Link Mean: 给你n个串,让你找出出现次数大于n/2的最长公共子串。如果有多个,按字典序排列输出。 analyse: 经典题。 直接二分判断答案。 判断答案p时,我们扫一遍height数组,如果height[i]<p时开辟一个新段。 判断时用set存
阅读全文
摘要:Boggle Problem's Link: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1457 Mean: 给定n个串,有m个询问。 每个询问给你一个4*4的字符矩阵,你可以在这个字符矩阵中任意字符出发,向四个方向走(已走过的不可重复走),走
阅读全文
摘要:Revolving Digits Problem's Link Mean:给你一个字符串,你可以将该字符串的任意长度后缀截取下来然后接到最前面,让你统计所有新串中有多少种字典序小于、等于、大于原串。 analyse:KMP的经典题。首先我们将原串扩展成两倍,算一遍扩展KMP(自匹...
阅读全文
摘要:题目来源 [The 2014 ACM-ICPC Asia Xi’an Regional Contest Problem G] 题目描述 给你两个字符串,求这两个字符串相同回文串的匹配对数。 思路分析 每个字符串建一棵回文树,分别从0结点和1结点两棵树一起往下dfs,对于同一条路径上的结点,一定是相同
阅读全文
摘要:写在前面 最近无意中看到了这个数据结构,顺便也就学习了一下。 而且发现网上关于这个算法的描述有很多地方是错的,在这里做了一些更正。 处理字符串的算法很多: KMP, E-KMP, AC自动机, 后缀三兄弟:后缀树、后缀数组、后缀自动机,Trie树、Trie图,符串hash... 但以上数据结构在处理
阅读全文
摘要:BZOJ 3676 回文串 Problem's Link: http://www.lydsy.com/JudgeOnline/problem.php?id=3676 Mean: 略 analyse: 由于构造完回文自动机后,len[i]表示第i个回文串的长度,cnt[i]表示第i个回文串出现的次数,
阅读全文
摘要:Подпалиндромы Problem's Link: http://informatics.mccme.ru//mod/statements/view.php?chapterid=1750# Mean: 给你一个长度不超过1e5的字符串,要统计总共有多少个回文串。(第一次刷俄语题,还好有goo
阅读全文
摘要:Palindromes and Super Abilities Problem's Link: http://acm.timus.ru/problem.aspx?space=1&num=1960 Mean: 给你一个长度为n的字符串S,输出S的各个前缀中回文串的数量。 analyse: 回文树(回文
阅读全文
摘要:The Big Painting Problem's Link: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=88791 Mean: 给你两个由字符组成的矩阵,让你判断第一个矩阵在第二个矩阵中出现了多少次。 analyse:
阅读全文
摘要:char类: 1.strcpy(s1,s2);将s2为起始地址的字符串复制到s2中。 2.strncpy(s1,s2,k);将s2为起始地址的字符串的前k个复制到s1中。 3.strstr(s1,s2);在s1中查找s2,如果查找到,返回第一次出现的位置;否则返回NULL。 4.strcmp(s1,
阅读全文
摘要:Seek the Name, Seek the Fame Problem's Link: http://poj.org/problem?id=2752 Mean:给你一个字符串,求这个字符串中有多少前缀是和后缀相等的, 按递增顺序输出这些前缀的长度。 analyse: KM...
阅读全文
摘要:Power Strings Problem's Link: http://poj.org/problem?id=2406 Mean:给你一个字符串,让你求这个字符串最多能够被表示成最小循环节重复多少次得到。 analyse: KMP之next数组的运用。裸的求最小循环节。 ...
阅读全文
摘要:The Minimum Length Problem's Link: http://acm.hust.edu.cn/problem/show/1010 Mean:给你一个字符串,求这个字符串的最小循环节。 analyse: KMP之next数组的运用。裸的求最小循环节。 ...
阅读全文
摘要:Period Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=1358 Mean:给你一个字符串,让你从第二个字符开始判断当前长度的字符串是否是重复串,如果是,输出当前位置,并输出重复串的周期。 analyse:...
阅读全文
摘要:Cyclic Nacklace Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=3746 Mean:给你一个字符串,让你在后面加尽量少的字符,使得这个字符串成为一个重复串。例:abca---添加bc,成为abcabca...
阅读全文
摘要:涉及到字符串的问题,无外乎这样一些算法和数据结构:自动机 KMP算法 Extend-KMP 后缀树 后缀数组 trie树 trie图及其应用。当然这些都是比较高级的数据结构和算法,而这里面最常用和最熟悉的大概是kmp,即使如此还是有相当一部分人也不理解kmp,更别说其他的了。当然一般的字符串问题中,
阅读全文
摘要:fail指针可以说是AC自动机里最难理解的东西,怎样更好的理解AC自动机的fail指针? 先来看一幅图: 看这幅图上的fail指针是怎么构造的. 树上的词分别是: { he , hers , his , she} 按图所示分成3层。看到第三层,是"she",其中: ①s指向root ②h先找到s的f
阅读全文
摘要:Problem's Link Mean: 有n个模式串和一篇文章,统计有多少模式串在文章中出现(正反统计两次). analyse: 好久没写AC自动机了,回顾一下AC自动机的知识。 本题在构造文章的时候需要仔细一点,其他没什么Trick,和普通AC自动机做法一样: build Trie > buil
阅读全文
