
KMP
Accagain
微博:http://weibo.com/u/3871485516
展开
-
KMP hdu-2203-亲和串
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2203 题目意思: 给两个字符串是s1,s2,如果是s1通过循环移动,能够使s2成为自己的子串,则输出yes,否则输出no. 解题思路: 将s1复制一遍,构成循环链,用KMP判断s2是否为子串。 注意字符串的下表从0开始,next数组相应的下表要改变下. 代码: #include原创 2013-05-20 20:08:13 · 1040 阅读 · 0 评论 -
KMP-hdu-4763-Theme Section
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4763 题目意思: 给一个字符串S,求最大长度的串A,使得S满足APAQA。 解题思路: kmp. 先求出S串的next数组,然后从next[n]开始,如果next[n] 代码: #include #include #include #include #include #inc原创 2013-09-29 00:17:40 · 2081 阅读 · 0 评论 -
hdu-4468-Spy-KMP+贪心
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4468 题目意思: 给你一个串r,求一个串s,使得s的前缀1+s的前缀2+s的前缀3+...+s的前缀n+s=r . 解题思路: KMP+贪心。 初始时把r[1]赋给s[1],从r中每个字符从前至后依次匹配s,当匹配失败时,说明该字符在模式串中没有出现,由贪心思想,把它放到最后(前面满原创 2013-07-23 15:35:37 · 1484 阅读 · 0 评论 -
KMP hdu-3613-Best Reward
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3613 题目意思: a-z每个字母有一个值,给个字符串,让你分成两部分,每一部分至少有一个字符。 如果该串是回文字符串,则该值为所有字符的值之和,如果不是字符串,则为0. 让你计算怎样分割使得两部分的总和值最大。 解题思路: 利用回文字符串的next[i]也是回文字符串的特点,求出串中所原创 2013-05-26 17:39:36 · 953 阅读 · 0 评论 -
KMP-hdu-1867 A + B for you again
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1867 题目意思: 给两个字符串,求相加后的长度最小的字符串,相加时第一个字符串的后缀如果和第二个字符串的前缀相同,可以消掉一个。 当最短长度相同时,以字母顺序小的输出。 解题思路: 注意两字符串相加可以交换,分两种情况来分析。 如果s1+s2 则构造s2*s1字符串,求出next原创 2013-05-22 20:08:49 · 1056 阅读 · 0 评论 -
KMP hdu-4300 Clairewd’s message
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4300 题目意思: 给一个26个字母a-z对应的密码,给一个字符串,前面为密码后面为明码,让你找出最短的完整的信息,使前面一段时密码,后面一段时明码,而且不能重叠,中间不能有多的。如果不能找到,自己构造出一个。 解题思路: next[i]表示前缀密码和后缀明码最大的匹配长度。 注意最后原创 2013-05-22 23:06:36 · 1050 阅读 · 0 评论 -
KMP hdu-1686-Oulipo
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1686 题目意思: 给两个串,求第一个串在第二个串中的重复次数,可以重叠。 解题思路: 直接用KMP,当匹配一个成功时,j置为next[j]就行了。 代码: #include #include #include #include #include #include #include原创 2013-05-22 13:52:36 · 1245 阅读 · 0 评论 -
KMP hdu-2594 Simpsons’ Hidden Talents
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2594 题目意思: 给两个串,求出第一个串的前缀是第二个串的后缀的最大长度。 解题思路: 先求出第一个串的next数组,然后来匹配第二个串。 注意一种特殊情况,当第二个串是第一个串的前缀子串时,next数组不能包括自己本身。单独处理。 代码: #include #include #原创 2013-05-22 13:48:14 · 1411 阅读 · 4 评论 -
KMP hdu-3746-Cyclic Nacklace
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3746 题目意思: 给定一个字符串,让你求出至少在头或尾添加几个字符使得整个字符串为周期字符串,且循环次数大于1. 解题思路: 根据KMP算法中next数组的意义,可以求得,如果满足要求的话,必定有next[n]%(n-next[n])==0. 如果不满足要求的话,假设以next[n]原创 2013-05-21 12:26:15 · 1209 阅读 · 0 评论 -
KMP Hdu-3336 Count the string
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3336 题目意思: 求一个字符串的所有前缀出现次数的总和。 以前做的一道题目,没想到,金山的比赛居然有一模一样的题。 http://acm.hdu.edu.cn/showproblem.php?pid=4552 解题思路: dp[i]表示以i结尾的前缀的个数。 dp[i]=dp原创 2013-05-20 22:46:56 · 1585 阅读 · 0 评论 -
Hdu 1711 KMP Number Sequence
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1711 题目意思: 给两个数组,如果第一个数组包括第二个数组,输出最小的位置。否则输出-1. 解题思路: 裸的KMP。 代码: #include #include #include #include #include #include #include #include #include原创 2013-05-20 19:30:07 · 1055 阅读 · 0 评论 -
[kmp+dp] hdu 4628 Pieces
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4622 Reincarnation Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 2096 Accepted原创 2014-10-10 15:40:51 · 1106 阅读 · 0 评论