【字符串】--KMP
起风了_唯有努力生存
继续加油
展开
-
Count the string (kmp的next数组运用)
【题目来源】:https://cn.vjudge.net/problem/HDU-3336 【题意】 给出一个字符串,假设这个字符串长度为n,那么这个字符串的所有前缀字符串在原字符出现次数是多少。 举个例子: s: “abab” The prefixes are: “a”, “ab”, “aba”, “abab” res=2+2+1+1=6。 【思路】 起初并没有想到用next数组原创 2017-06-09 18:58:19 · 236 阅读 · 0 评论 -
Simpsons’ Hidden Talents (kmp运行题)
【题目来源】:https://vjudge.net/problem/HDU-2594 【题意】 求第一个字符串的前缀和第二个字符串的后缀的字符最大匹配量。 如: riemann marjorie 得:rie 字符数量是3、 【思路】 起初以为这道题依旧是有关于next数组的题,然后就有了一系列的代码应运而生。自己试的样例都过了,wrong的一塌糊涂。 额,初学者的我只知道kmp原创 2017-06-09 09:51:00 · 488 阅读 · 0 评论 -
Power Strings (kmp中next数组的运用)
【题目来源】:https://vjudge.net/problem/POJ-2406 【题意】 给出一个字符串,问其最小循环周期是多少。 【思路】 利用kmp中next数组的特殊性,也就是若字符串长度为len,则在1~len里,假设i在1~n,那么假设长度为i,那么其的最小循环周期是i-next[i]。 可以自行证明。 【代码】#include<set>#include<map>#i原创 2017-06-07 17:00:00 · 264 阅读 · 0 评论 -
The Minimum Length (kmp中next数组的运用)
【题目来源】:https://vjudge.net/problem/HUST-1010 【题意】 给出一段字符串,问最小周期是多少。。 【思路】 KMP中next数组裸题,对于next数组,当前长度减去当前的next数值等于最小周期。 【代码】#include<set>#include<map>#include<stack>#include<cmath>#include<queue原创 2017-06-07 11:02:37 · 287 阅读 · 0 评论 -
Period(kmp中next数组的运用)
【题目来源】:https://vjudge.net/problem/HDU-1358 【题意】 给出一个长度为n的字符串,问,在字符1~n个里,前缀是周期串的是哪个?输出i,并且输出这i个字符里最小周期的个数k,并且,k不能是1。 举个例子说明一下: abcabcabcabc 那么输出: 6 2 9 3 12 4。 先是字符串:abcabc,是周期串,最小周期是3,k是2(也就是有原创 2017-06-07 10:16:01 · 556 阅读 · 1 评论 -
Cyclic Nacklace (kmp中next数组的运用)
【题目来源】:https://vjudge.net/problem/HDU-3746 【题意】 题意是给出一个字符串,要求变成一个周期串,最少需要几个字符? 【思路】 也不知道怎地,想到了next数组,数组里记录的数字可以看成是一个周期。 举例说明: 字符串abcabcabc next数组:0 0 0 1 2 3 4 5 6 而字符串abcabc next数组:0 0 0 1 2原创 2017-06-07 08:29:24 · 232 阅读 · 0 评论 -
剪花布条 (KMP算法(模板))
【题目来源】:https://vjudge.net/problem/HDU-2087 【题意】 问一个字符串在另外一个字符串里出现过几次,出现一次减去一次。 【思路】 本来想着不用kmp,但是觉得kmp需要练练手,索性用上了。 然后呢,相对于kmp模板来说只是改动了一点东西,本来kmp就是依照模板来敲的,但是题目要的结果不一样,就手动模拟了一下匹配的过程,然后就找到了要改的地方,只需要把每原创 2017-06-05 20:37:07 · 628 阅读 · 0 评论 -
Number Sequence (KMP算法(模板))
【题目来源】:https://vjudge.net/problem/HDU-1711 【题意】 给出两列数字,问第二个序列是否存在于第一个序列中,若存在,输出最小的左端点,不存在,输出-1 。 【思路】 字符串匹配问题。这几天会把这个专题做一下。。这是第一题。。。 起初学习KMP的时候,是在大一过完年刚来的时候,那时候感觉可以学的,但是学长的经验告诉我们,不适合我们学。 但是,现在的我觉原创 2017-06-05 11:26:35 · 385 阅读 · 0 评论 -
hdu5918-Sequence I (kmp)
题目来源:http://./showproblem.php?pid=5918题意给出一个a序列,b序列,然后问在a序列中有多少个b序列,并且是以下形式: b1,b2,⋯,bmb1,b2,⋯,bm is exactly the sequence aq,aq+p,aq+2p,⋯,aq+(m−1)paq,aq+p,aq+2p,⋯,aq+(m−1)p where q+(m−1)p≤nq+(m−1)p≤n原创 2017-10-09 18:42:16 · 230 阅读 · 0 评论