随笔分类 - ACM/文本处理
摘要:Best RewardProblem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=3613Mean:给你一个字符串,每个字符都有一个权值(可能为负),你需要将这个字符串分成两个子串,使得这两个子串的价值之和最大。一个子串价值的计算方法:如果这个...
阅读全文
摘要:Problem 1564 - A - Circle Problem's Link: http://acm.whu.edu.cn/land/problem/detail?problem_id=1564 Mean: 给你一个长度不超过1e6的数字串,求第k大的环状数字串的前面那个位置。 analyse:
阅读全文
摘要:Long Long Message Problem's Link:http://poj.org/problem?id=2774 Mean: 求两个字符串的最长公共子串的长度。 analyse: 前面在学习后缀数组的时候已经做过一遍了,但是现在主攻字符串hash,再用字符串hash写一遍。 这题的思路
阅读全文
摘要:Oulipo Problem's Link Mean: 给你一个模式串P和一个母串S,让你统计P串在S串中出现的次数. analyse: 一开始想到的就是使用KMP,就用KMP写了,93ms,挺快的. 我又用AC自动机写了一遍,万万没想到竟然超时了. 后来看别人有用字符串hash写的,于是又用字符串
阅读全文
摘要:Milking GridProblem's Link:http://poj.org/problem?id=2185Mean:给你一个n*m的字符矩阵,让你求这个字符矩阵的最小覆盖矩阵,输出这个最小覆盖矩阵的面积。analyse:做了上一篇博客的题目,就会求一个字符串的最小覆盖矩阵。同样的,现在求字符...
阅读全文
摘要:近似回文词Problem's Link:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1328analyse:直接暴力枚举每一个终点,然后枚举回文串的半径即可.Time complexity:O(n*m)Source code:// Memory ...
阅读全文
摘要:KMP与最小覆盖子串最小覆盖子串:对于某个字符串s,它的最小覆盖子串指的是长度最小的子串p,p满足通过自身的多次连接得到q,最后能够使s成为q的子串。比如:对于s="abcab",它的最小覆盖子串p="abc",因为p通过在它后面再接上一个p(即重叠0个字符),可以得到q="abcabc",此时s是...
阅读全文
摘要:求最长回文串的利器 - Manacher算法Manacher主要是用来求某个字符串的最长回文子串.不要被manacher这个名字吓倒了,其实manacher算法很简单,也很容易理解,程序短,时间复杂度为O(n).求最长回文子串这个问题,我听说有个分治+拓展kmp的算法,后缀数组也可以.但是对于求回文...
阅读全文
摘要:What's Aho-Corasick automaton? 一种多模式串匹配算法,该算法在1975年产生于贝尔实验室,是著名的多模式匹配算法之一。 简单的说,KMP用来在一篇文章中匹配一个模式串;但如果有多个模式串,需要在一篇文章中把出现过的模式串都匹配出来,就需要Aho-Corasick aut
阅读全文
摘要:病毒侵袭持续中Problem's Link:http://acm.hdu.edu.cn/showproblem.php?pid=3065Mean:略analyse:AC自动机的运用.这一题需要将模式串都存储下来,还有就是base的取值一定要弄清楚,由于这题的模式串都是大写字母所以我们可以通过剪枝来加...
阅读全文
摘要:病毒侵袭Problem's Link:http://acm.hdu.edu.cn/showproblem.php?pid=2896Mean:略analyse:AC自动机的运用,多模式串匹配。就是有几个细节要注意,在这些细节上卡了半天了。1)输出的网站编号和最终的病毒网站数不是一样的;2)next指针...
阅读全文
摘要:Keywords SearchTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 35655Accepted Submission(s): 11496P...
阅读全文
摘要:Number SequenceTime Limit: 10000/5000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11606Accepted Submission(s): 5294P...
阅读全文
摘要:在KMP算法中有个数组,叫做前缀数组,也有的叫next数组。每一个子串有一个固定的next数组,它记录着字符串匹配过程中失配情况下可以向前多跳几个字符。当然它描述的也是子串的对称程度,程度越高,值越大,当然之前可能出现再匹配的机会就更大。这个next数组的求法是KMP算法的关键,但不是很好理解。这个...
阅读全文
摘要:前言 之前对kmp算法虽然了解它的原理,即求出P0···Pi的最大相同前后缀长度k。 但是问题在于如何求出这个最大前后缀长度呢? 我觉得网上很多帖子都说的不是很清楚,总感觉没有把那层纸戳破, 后来翻看算法导论32章 字符串匹配,虽然讲到了对前后缀计算的正确性,但是大量的推理证明不大好理解...
阅读全文
摘要:1297. Palindrome Time Limit: 1.0 secondMemory Limit: 16 MB The “U.S. Robots” HQ has just received a rather alarming anonymous letter. It states that t
阅读全文
摘要:Language: Default Long Long Message Time Limit: 4000MS Memory Limit: 131072K Total Submissions: 21228 Accepted: 8708 Case Time Limit: 1000MS Descripti
阅读全文
摘要:写在前面 在字符串处理当中,后缀树和后缀数组都是非常有力的工具。 其中后缀树大家了解得比较多,关于后缀数组则很少见于国内的资料。 其实后缀数组是后缀树的一个非常精巧的替代品,它比后缀树容易编程实现, 能够实现后缀树的很多功能而时间复杂度也不太逊色,并且,它比后缀树所占用的空间小很多。 可以说,在信息
阅读全文
摘要:Problem Statement The Happy Letter game is played as follows: At the beginning, several players enter the field. Each player has a lowercase English l
阅读全文
