kmp
文章平均质量分 60
GKHack
这个作者很懒,什么都没留下…
展开
-
HDOJ1711 Number Sequence(kmp)
题目链接:点击打开链接给你两个字符串,问你第二个字符串在第一个字符串首次出现的位置。kmp模板题目,近期kmp的结束题目,近两天状态不佳,心事重重,sign..AC代码:#include "iostream"#include "cstdio"#include "cstring"#include "algorithm"using namespace std;原创 2015-10-11 23:58:34 · 980 阅读 · 0 评论 -
POJ2752 Seek the Name, Seek the Fame(kmp)
题目链接:点击打开链接给你一个字符串,要你从小到大输出重复子串的长度。利用nxt数组性质,将长度从大到小保存到ans数组中,最后逆序输出答案。AC代码:#include "iostream"#include "cstdio"#include "cstring"#include "algorithm"using namespace std;const int原创 2015-10-08 01:28:22 · 852 阅读 · 0 评论 -
POJ3080 Blue Jeans(kmp & 暴力)
题目链接:点击打开链接给你m个字符串,问你最长公共子序列是什么,若长度小于3输出给定字符串,若存在多个最长公共子序列,输出字典序最小的。kmp:从开头到结尾遍历字符串,每一个新的字符串开头都进行一次kmp,得到长度后跟原先得出的比较,长度长则直接更新,长度相等则比较字典序。AC代码:#include "iostream"#include "cstdio"#i原创 2015-10-08 22:00:28 · 1201 阅读 · 0 评论 -
POJ2185 Milking Grid(kmp)
题目链接:点击打开链接给你一个字符串矩阵,问你最小覆盖矩阵的面积是多少。对每一行求最小覆盖子串的长度,对长度求最小公倍数,获得最小覆盖矩阵的长。同理,可以获得最小矩阵的宽。如果长或宽大于给定矩阵的长或宽,那么所求最小覆盖矩阵的长或宽即为原矩阵的长或宽。AC代码:#include "iostream"#include "cstdio"#include "cst原创 2015-10-08 17:41:18 · 800 阅读 · 0 评论 -
POJ3461 Oulipo(kmp)
题目链接:点击打开链接给你两个字符串,问你前一个字符串在后一个字符串中出现了几次。简单修改hdoj2087代码即可ac,就是交换了一下输入顺序,以及此题kmp()函数中j不归零。AC代码:#include "iostream"#include "cstdio"#include "cstring"#include "algorithm"using namesp原创 2015-10-08 01:32:04 · 1006 阅读 · 0 评论 -
HDOJ1358 Period(kmp)
题目链接:点击打开链接给你字符串长度以及此字符串,让你输出子字符串位置以及出现的次数。利用nxt数组以及i % (i - nxt[i]) == 0则有循环节的性质,扫一遍字符串,若满足条件就输出。AC代码:#include "iostream"#include "cstdio"#include "cstring"#include "algorithm"usi原创 2015-10-07 07:37:30 · 734 阅读 · 0 评论 -
HDOJ3336 Count the string(kmp + dp)
题目链接:点击打开链接给你字符串的长度以及这个字符串,问你前缀数量之和是多少。利用kmp中next数组的性质,将该跳多少位保存到nxt数组中,dp数组保存当前子串i所含前缀数量之和,dp[i] = (dp[nxt[i]] + 1) % MOD计算当前结尾子串i数量加上前nxt[i]个字符这一前缀的数量。AC代码:#include "iostream"#incl原创 2015-10-06 23:40:10 · 1077 阅读 · 0 评论 -
HDOJ2594 Simpsons’ Hidden Talents(kmp)
题目链接:给你两个字符串,问你第一个字符串的前缀和第二个字符串的后缀最长想等的字符是什么且长度为多少。把第二个字符串连接到第一个字符串后面,求长字符串的nxt数组,而后利用nxt数组的性质,如果nxt[len] > len1就继续比较,如果nxt[len] > len2也继续比较,最后nxt[x]即为所求字符串长度。AC代码:#include "iostream原创 2015-10-07 07:46:18 · 1059 阅读 · 0 评论 -
HDOJ3746 Cyclic Nacklace(kmp)
题目链接:点击打开链接给你一个字符串,问你最少添加几个字符可以使字符串有循环节。利用nxt数组的性质,len - nxt[len]即为字符串的最小循环节,且如果len % (len - nxt[len]) == 0,那么当前字符串就是有循环节的,且最小循环节为len / (len - nxt[len])。AC代码:#include "iostream"#inc原创 2015-10-07 07:30:44 · 1098 阅读 · 0 评论 -
HDOJ2087 剪花布条(kmp)
题目链接:给出两个字符串,问你后面的字符串在前面的字符串中出现了几次。求出小饰条的nxt数组,然后用花纹布匹配,每匹配成功一次j就归零一次,避免出现多次无用匹配的错误。AC代码:#include "iostream"#include "cstdio"#include "cstring"#include "algorithm"using namespace s原创 2015-10-07 10:45:18 · 1083 阅读 · 0 评论 -
POJ2406 Power Strings(kmp)
题目链接:点击打开链接给你一个字符串,问你子串出现最多次数是多少。利用nxt数组性质,若len % (len - nxt[len]) == 0,则子串最多出现len / (len - nxt[len])次。否则没有重复出现的子串。AC代码:#include "iostream"#include "cstdio"#include "cstring"#includ原创 2015-10-08 01:24:05 · 122 阅读 · 0 评论