觉得浮夸了四年,漠然发现原来是浮躁了四年!

随笔分类 -  字符串

摘要:这一题很早很早以前就遇到了,一直一来迟迟没有动手。直到昨天为止,做了足够多的”前戏“,才敢下手。题目大意:给定一个字符串,比如 abab,找出i(1=<i<=n)个单位长度的前缀在字符串中出现的次数和。前缀 出现次数a 2ab 2aba 1abab 1所以,答案就是6;用dp[i]记录字符串中前i个字符中所包含的前缀个数。i dp[i] 包含的前缀 next[i]1 1 a 02 1 ab 03 2 a,aba 14 2 ab,abab 2通过上面的列表可以发现,前i个字符至少含有一个前缀,那就是它本身;当i=3时,为何有两个前缀?有nex数组的意义可以知道:因为n... 阅读全文
posted @ 2013-05-01 10:09 heat nan 阅读(332) 评论(0) 推荐(0) 编辑
摘要:题目大意:给出你一个字符串比如abcabca,可以发现这个字符串的循环周期为3,即abc,那么还需要添加多少个字符,使得整个字符串是n倍的循环,并且n大于1;abcabca 循环周期为3,所以还需要添加2个字符;abcabc 循环周期为3,所以还需要添加0个字符;abc 循环周期为3,但是其大循环为1,所以最少还要增加个abc,即需要添加3个字符;KEY:运用KMP算法中的next数组可完美解决此问题,已经知道abcabca一共有7个字符,而且next[1-7]中的数值为分别为0 0 0 1 2 3 4;显然循环周期为T=7-4;也知道abcabcabca中next的值分别对应为0 0 0 1 阅读全文
posted @ 2013-04-30 16:30 heat nan 阅读(355) 评论(0) 推荐(0) 编辑
摘要:今天对KMP的认识又加深一点了,可是又不是很能用语言来表达!题目大意:给定两个字符串,比如abcd,dcab,需要把它连接起来,但是需要遵循两个条件,1 最短原则 2 长度相同的前提下字典序的优先连接原则:如果第一个字符串的后缀(长度为n)和第二个字符串的前缀(长度为n)相同,那么连接的时候可以省去相同的n个字符,本来有2n个字符;仍然以上面的两个字符串为例,有两种连法,abcdcab和dcabcd,显然第二个字符串更短,所以输出dcabcd;解决办法:两次KMP运用一次KMP可以计算出两个字符串的前缀和后缀的相同长度n;两次KMP后比较n的值即可; 1 #include<iostrea 阅读全文
posted @ 2013-04-29 23:10 heat nan 阅读(145) 评论(0) 推荐(0) 编辑
摘要:Problem Description人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现,现在长大了却不知道怎么去判断亲和串了,于是他只好又再一次来请教聪明且乐于助人的你来解决这个问题。亲和串的定义是这样的:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中,那么我们就说s2 是s1的亲和串。Input本题有多组测试数据,每组数据的第一行包含输入字符串s1,第二行包含输入字符串s2,s1与s2的长度均小于100000。Output如果s2是s1的亲和串,则输出&quo 阅读全文
posted @ 2013-04-26 14:36 heat nan 阅读(237) 评论(0) 推荐(0) 编辑
摘要:Problem DescriptionGiven two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...... , b[M] (1 <= M <= 10000, 1 <= N <= 1000000). Your task is to find a number K which make a[K] = b[1], a[K + 1] = b[2], ...... , a[K + M - 1] = b[M]. If there are more than one K exist, ou 阅读全文
posted @ 2013-04-26 12:13 heat nan 阅读(211) 评论(0) 推荐(0) 编辑
摘要:题目太长自己叙述吧!原题链接地址:http://acm.hdu.edu.cn/showproblem.php?pid=1686输入:t代表测试实例第一行:模式串第二行:匹配串问模式串在匹配串中出现的次数。3BAPCBAPCAZAAZAZAZAVERDIAVERDXIVYERDIAN上面的三个实例的输出分别为:1 3 0KMP算法看了有半天了吧!很朦胧啊!就霸王硬上弓了,套着模板A了这一题! 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace std; 5 阅读全文
posted @ 2013-04-26 11:48 heat nan 阅读(197) 评论(0) 推荐(0) 编辑
摘要:disneyTime Limit: 3000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 583Accepted Submission(s): 146Problem DescriptionA new machine was introduced into disney world. Every day, there is a long queue because of its function. Everyone can input their score or updat 阅读全文
posted @ 2013-04-22 15:22 heat nan 阅读(226) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示