随笔分类 -  ACM/KMP

摘要:Revolving Digits Problem's Link Mean:给你一个字符串,你可以将该字符串的任意长度后缀截取下来然后接到最前面,让你统计所有新串中有多少种字典序小于、等于、大于原串。 analyse:KMP的经典题。首先我们将原串扩展成两倍,算一遍扩展KMP(自匹... 阅读全文
posted @ 2015-08-25 22:54 北岛知寒 阅读(355) 评论(0) 推荐(0) 编辑
摘要:The Big Painting Problem's Link: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=88791 Mean: 给你两个由字符组成的矩阵,让你判断第一个矩阵在第二个矩阵中出现了多少次。 analyse: 阅读全文
posted @ 2015-08-10 13:35 北岛知寒 阅读(394) 评论(0) 推荐(0) 编辑
摘要:Seek the Name, Seek the Fame Problem's Link: http://poj.org/problem?id=2752 Mean:给你一个字符串,求这个字符串中有多少前缀是和后缀相等的, 按递增顺序输出这些前缀的长度。 analyse: KM... 阅读全文
posted @ 2015-07-28 09:18 北岛知寒 阅读(385) 评论(0) 推荐(0) 编辑
摘要:Power Strings Problem's Link: http://poj.org/problem?id=2406 Mean:给你一个字符串,让你求这个字符串最多能够被表示成最小循环节重复多少次得到。 analyse: KMP之next数组的运用。裸的求最小循环节。 ... 阅读全文
posted @ 2015-07-28 08:39 北岛知寒 阅读(185) 评论(0) 推荐(0) 编辑
摘要:The Minimum Length Problem's Link: http://acm.hust.edu.cn/problem/show/1010 Mean:给你一个字符串,求这个字符串的最小循环节。 analyse: KMP之next数组的运用。裸的求最小循环节。 ... 阅读全文
posted @ 2015-07-28 08:05 北岛知寒 阅读(270) 评论(0) 推荐(0) 编辑
摘要:Period Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=1358 Mean:给你一个字符串,让你从第二个字符开始判断当前长度的字符串是否是重复串,如果是,输出当前位置,并输出重复串的周期。 analyse:... 阅读全文
posted @ 2015-07-28 07:31 北岛知寒 阅读(233) 评论(0) 推荐(0) 编辑
摘要:Cyclic Nacklace Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=3746 Mean:给你一个字符串,让你在后面加尽量少的字符,使得这个字符串成为一个重复串。例:abca---添加bc,成为abcabca... 阅读全文
posted @ 2015-07-27 21:56 北岛知寒 阅读(513) 评论(0) 推荐(0) 编辑
摘要:涉及到字符串的问题,无外乎这样一些算法和数据结构:自动机 KMP算法 Extend-KMP 后缀树 后缀数组 trie树 trie图及其应用。当然这些都是比较高级的数据结构和算法,而这里面最常用和最熟悉的大概是kmp,即使如此还是有相当一部分人也不理解kmp,更别说其他的了。当然一般的字符串问题中, 阅读全文
posted @ 2015-07-20 18:19 北岛知寒 阅读(263) 评论(0) 推荐(0) 编辑
摘要:Best RewardProblem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=3613Mean:给你一个字符串,每个字符都有一个权值(可能为负),你需要将这个字符串分成两个子串,使得这两个子串的价值之和最大。一个子串价值的计算方法:如果这个... 阅读全文
posted @ 2015-05-06 22:37 北岛知寒 阅读(165) 评论(0) 推荐(0) 编辑
摘要:Milking GridProblem's Link:http://poj.org/problem?id=2185Mean:给你一个n*m的字符矩阵,让你求这个字符矩阵的最小覆盖矩阵,输出这个最小覆盖矩阵的面积。analyse:做了上一篇博客的题目,就会求一个字符串的最小覆盖矩阵。同样的,现在求字符... 阅读全文
posted @ 2014-10-03 22:04 北岛知寒 阅读(326) 评论(0) 推荐(1) 编辑
摘要:KMP与最小覆盖子串最小覆盖子串:对于某个字符串s,它的最小覆盖子串指的是长度最小的子串p,p满足通过自身的多次连接得到q,最后能够使s成为q的子串。比如:对于s="abcab",它的最小覆盖子串p="abc",因为p通过在它后面再接上一个p(即重叠0个字符),可以得到q="abcabc",此时s是... 阅读全文
posted @ 2014-10-02 22:25 北岛知寒 阅读(515) 评论(0) 推荐(1) 编辑
摘要:Number SequenceTime Limit: 10000/5000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11606Accepted Submission(s): 5294P... 阅读全文
posted @ 2014-09-28 15:28 北岛知寒 阅读(274) 评论(0) 推荐(0) 编辑
摘要:在KMP算法中有个数组,叫做前缀数组,也有的叫next数组。每一个子串有一个固定的next数组,它记录着字符串匹配过程中失配情况下可以向前多跳几个字符。当然它描述的也是子串的对称程度,程度越高,值越大,当然之前可能出现再匹配的机会就更大。这个next数组的求法是KMP算法的关键,但不是很好理解。这个... 阅读全文
posted @ 2014-09-26 20:09 北岛知寒 阅读(264) 评论(0) 推荐(0) 编辑
摘要:前言 之前对kmp算法虽然了解它的原理,即求出P0···Pi的最大相同前后缀长度k。 但是问题在于如何求出这个最大前后缀长度呢? 我觉得网上很多帖子都说的不是很清楚,总感觉没有把那层纸戳破, 后来翻看算法导论32章 字符串匹配,虽然讲到了对前后缀计算的正确性,但是大量的推理证明不大好理解... 阅读全文
posted @ 2014-09-26 19:45 北岛知寒 阅读(398) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
主题色彩