随笔分类 - ACM/KMP
摘要:Revolving Digits Problem's Link Mean:给你一个字符串,你可以将该字符串的任意长度后缀截取下来然后接到最前面,让你统计所有新串中有多少种字典序小于、等于、大于原串。 analyse:KMP的经典题。首先我们将原串扩展成两倍,算一遍扩展KMP(自匹...
阅读全文
摘要:The Big Painting Problem's Link: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=88791 Mean: 给你两个由字符组成的矩阵,让你判断第一个矩阵在第二个矩阵中出现了多少次。 analyse:
阅读全文
摘要: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,更别说其他的了。当然一般的字符串问题中,
阅读全文
摘要:Best RewardProblem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=3613Mean:给你一个字符串,每个字符都有一个权值(可能为负),你需要将这个字符串分成两个子串,使得这两个子串的价值之和最大。一个子串价值的计算方法:如果这个...
阅读全文
摘要:Milking GridProblem's Link:http://poj.org/problem?id=2185Mean:给你一个n*m的字符矩阵,让你求这个字符矩阵的最小覆盖矩阵,输出这个最小覆盖矩阵的面积。analyse:做了上一篇博客的题目,就会求一个字符串的最小覆盖矩阵。同样的,现在求字符...
阅读全文
摘要:KMP与最小覆盖子串最小覆盖子串:对于某个字符串s,它的最小覆盖子串指的是长度最小的子串p,p满足通过自身的多次连接得到q,最后能够使s成为q的子串。比如:对于s="abcab",它的最小覆盖子串p="abc",因为p通过在它后面再接上一个p(即重叠0个字符),可以得到q="abcabc",此时s是...
阅读全文
摘要: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章 字符串匹配,虽然讲到了对前后缀计算的正确性,但是大量的推理证明不大好理解...
阅读全文
