
ACM_字符串处理
文章平均质量分 85
ZeroClock
这个作者很懒,什么都没留下…
展开
-
hdu 2203 亲和串 (字符串__KMP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2203题目描述:给定两个串s1,s2,问是否能够通过对s1串进行位移操作使得新串ss1中包含s2解题思路:看到题目,我们假设可以通过位移使得s1中含s2,即s1前面的串可以用在串的后面使得s2可以匹配,这样很自然地想到在s1后面在补上s1,让两个s1拼接一个新串ss,在ss中计算原创 2012-04-13 14:06:33 · 686 阅读 · 0 评论 -
Hdu 3962 Microgene (字符串_AC自动机(矩阵DP))
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3962题目大意:给定m个DNA病毒序列,求碱基构成的长度为n且含有两个以上DNA病毒序列,结果对10007取模。解题思路:本题代码量大,较为综合,需用到AC自动机改造而成的Trie图、DP思想、矩阵快速幂。 如果n比较小,那么本题可以用DP解,由于原创 2012-05-24 18:34:15 · 1380 阅读 · 1 评论 -
CF 126B Password (字符串_KMP(好题))
题目链接:http://www.codeforces.com/problemset/problem/126/B题目大意:给定一个长度解题思路:KMP的灵活应用。要找既是后缀又是前缀的子串很好找,方法如下:next[len]表示后缀与前缀匹配的长度为next[len],那么S0,S1,Snext[len]-1就是第一个符合既是前缀又是后缀子串了,前一个子串是S原创 2012-08-29 01:16:50 · 1873 阅读 · 1 评论 -
Hdu 4187 Alphabet Soup (数学_Polya(KMP))
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4187题目大意:给定一个圆环上的n个点,圆环被分成360000度,点的位置由角度确定。然后用m种材料来填充这些点,某方案与它旋转的方案同构,问不同构的方案数。m 解题思路:外国佬的题目晦涩难懂,看了好多遍才能理解%70的题意,然后敲了一遍交wa掉了。尔后又看了好多原创 2012-08-22 00:34:03 · 1204 阅读 · 2 评论 -
Hdu 4187 Alphabet Soup (数学_Polya(KMP))
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4187题目大意:给定一个圆环上的n个点,圆环被分成360000度,点的位置由角度确定。然后用m种材料来填充这些点,某方案与它旋转的方案同构,问不同构的方案数。m 解题思路:外国佬的题目晦涩难懂,看了好多遍才能理解%70的题意,然后敲了一遍交wa掉了。尔后又看了好多原创 2012-08-21 12:46:04 · 127 阅读 · 0 评论 -
poj 3167 Cow Patterns (字符串__KMP好题)
题目链接:http://poj.org/problem?id=3167题目大意:给你一个数字序列arr,再给一个数字序列brr,arr和brr中的数字都是1到s(s解题思路:一开始题目没看懂,题目真心难懂,但看了测试数据后就恍然大悟知道是匹配题。要解这题关键在与几个地方,能快速地算出当个数字的排名,next数组也很关键和平时的不同。 这题我在两个地方都纠结过。现在我约定br原创 2012-04-16 10:28:46 · 1730 阅读 · 1 评论 -
poj 2001 Shortest Prefixes (字符串_字典树)
题目链接:http://poj.org/problem?id=2001题目大意:给定n个字符串,问每个字符串的最短表示。用这个最短表示就可以把其他字符串区别开来,比如abc和ab,前一个最短表示仍然是abc,后一个任然是ab,如果一个是abcde,一个是abce,那前面一个是abcd,后面一个i是abce。解题思路:本题可用字段树解。最短表示有两种情况:一种原创 2012-04-30 22:42:15 · 1077 阅读 · 0 评论 -
Zoj 3587 Marlons String (字符串_KMP)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4629 题目大意:给定两个串S和T,从S中找两个子串组成T(拼起来和T一模一样),两个子串可重叠,问有几种组合方法? 解题思路:这题可用KMP解。第一步是要找到T中的每个前缀在S中出现了几次,最开始的想法是将S拼到T后面,然后计算ne原创 2012-05-11 19:16:27 · 1029 阅读 · 0 评论 -
Hdu 2243 考研路茫茫——单词情结 (字符串_DP(矩阵))
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2243题目大意:给定m个词根,现在要用26个字母组成长度小等于n的字符串并且至少含一个词根的组合种数,n 解题思路:好恶心的一道题,在我还习惯写代码行数为两位数的时候空降这一道代码200行的题目,做的那是一个蛋疼。最开始脑残把题目理解成只含一个词根的组合种数,原创 2012-05-25 17:52:52 · 5476 阅读 · 0 评论 -
Zoj 3228 Searching the String (字符串_AC自动机)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3228题目大意:给定一篇长为n的文章,m个需要查找在文章中出现的次数的单词,每个单词佩带一个0或1,0表示从文章中查找时单词可以重叠,1表示不可以重叠。解题思路:这题不难,关键是要找到两个查找操作的性质以及理解ac自动机的查找原创 2012-05-26 10:02:56 · 954 阅读 · 0 评论 -
Poj 2778 DNA Sequence (字符串_AC自动机(DP))
题目链接:http://poj.org/problem?id=2778题目大意:给定‘A''C''G''T'四个碱基组成的m个病毒字符串,求碱基组成的长度为n的不包含病毒串的字符串种数,结果模以10万。解题思路:状态转移方程很容易想:if (j->next非危险节点) dp[i+1][j->next] += dp[i][j];(i表示长度,j->next为自原创 2012-05-23 23:59:59 · 868 阅读 · 0 评论 -
poj 3261 Milk Patterns (字符串_后缀数组)
题目链接:http://poj.org/problem?id=3261题目大意:给定一个序列,从中选择重复次数大于k次的的最长子段,可重叠解题思路:本题可用后缀数组解决。先用倍增算法算出sa数组、rank数组再算出height数组,最后二分查找0-n的长度,找一个最长的长度符合重复数量大于k。做完这题能想到height数组中保存的最长公共前缀是像山一样的波浪原创 2012-04-26 13:56:09 · 1385 阅读 · 1 评论 -
poj 1743 Musical Theme(字符串_后缀数组)
题目链接:http://poj.org/problem?id=1743题目大意:给定一个序列,可从中选择一个子段,可以对这个子段各个数进行增加k或者减少k的操作,问满足子段长度大于5并且两个子段不重叠的最长的重复子段长度是多少?解题思路:本题可用后缀数组解决。看到这题目就能想到后缀树组,因为是重复子段问题,由此观之后缀数组不仅仅解决字符串问题,其它重复子段问原创 2012-04-26 10:21:25 · 1514 阅读 · 0 评论 -
Zoj 3494 BCD Code (字符串_AC自动机(数位DP))
题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4317题目大意: 问A到B之间的所有整数,转换成BCD Code后,有多少个不包含属于给定病毒串集合的子串,A,B 解题思路: 因为时间问题,这是我这次复习AC自动机的最后一题了。ac自动机A的很爽,可是其他方面太弱逼,无可原创 2012-09-29 01:38:52 · 1414 阅读 · 0 评论 -
Hdu 4117 GRE Words(字符串_AC自动机(DP))
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4117题目大意: 题目给定n个字符串,每个串都有一个权值,让我们找出若干个字符串组成一个序列,前面一个字符串是后面一个字符串的子串,问我们能获得最大权值和?n 解题思路: 2011年成都区域赛的题目,是Spoj1676的加强版,要求对ac自动机理原创 2012-09-22 00:12:45 · 1792 阅读 · 3 评论 -
【字符串_AC自动机专辑】【10.18更新】
一、总概述: 在acm用到的算法中我觉得字符串类算法在实际中的应用价值可能最大,因为我们很多时候在和字符串打交道,在和匹配、查询打交道,比如我们按Ctrl+F的查找,目测有用Kmp匹配算法,linux下的fgrep利用AC自动机实现,还有很多的哈希方法也在各种实际应用中展现它的价值等等。 本文针对AC自动机做个总结,并附带若干题解。 建立AC自动机的原创 2012-09-22 00:13:12 · 2968 阅读 · 3 评论 -
Hdu 2457 DNA repair (字符串_AC自动机(DP))
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2457题目大意:给定n个危险DNA序列,再给一段长度长为L的DNA序列S,DNA序列S中可能包含危险DNA序列,可以改变S中的字符,改变一个算一次操作,问最少操作几次可使S不含危险DNA序列,如果怎么操作都会含有危险DNA序列输出-1。解题思路:这题并不难,只是常原创 2012-05-22 10:30:09 · 1378 阅读 · 0 评论 -
Poj 4025 Dictionary Size (字符串_字典树(经典))
题目链接: http://poj.org/problem?id=4025题目大意: 给定n个串,问这些串中某个串的前缀和某个串的后缀组合或者单独某个串能组合成的不同字符串总数,字符串可以重复,n 解题思路: 下午不小心打开湖南大学的oj,不小心看到有比赛,不小心地就去做了,不小心地没把这题A掉,赛后不小心地A掉了这题。 这题恨容易想到建两原创 2012-09-22 00:12:33 · 1286 阅读 · 0 评论 -
Poj 4052 Hrinity (金华邀请赛I)(字符串_AC自动机)
题目链接:http://poj.org/problem?id=4052题目大意:北大还没把题目放出来,大意是给定n个字符串和一篇文章,求这些字符串中有几个在文章,如果某些字符串是某个字符串的字符串,那合起来只能算一个。最后输出含有的个数。解题思路:这题在参加现场赛时根本就没看,不过当时也不一定做的出来,毕竟半年没做ac自动机了。这两天花了些时间把以前比赛未过原创 2012-05-27 03:31:08 · 2600 阅读 · 3 评论 -
Zoj 3181 Cover the String (字符串_字典树(DP))
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3222题目大意:给定一个模式串S,n个匹配串str,我们可以用匹配串覆盖模式串,每个匹配串可出现多次,每个前后相连的匹配串不能完全重叠,如果str[i]和str[j]相同,在算方案数时仍是不同的。strlen(S) 解题思路:原创 2012-05-16 13:44:48 · 1186 阅读 · 0 评论 -
Hdu 2825 Wireless Password(字符串_AC自动机(DP))
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2825题目大意:给定m个字符串,求长度为n且至少含有k个字符串(k个字符串全部都是m里的字符串)的方案数,模以20090717。解题思路:这题并不难,只是常规的ac自动机+状态压缩DP,状态转移方程比较容易想。dp[i][j][k]表示长度为i且在ac自动机上的位原创 2012-05-19 13:55:31 · 1114 阅读 · 1 评论 -
poj 3415 Common Substrings (字符串_后缀数组)
题目链接:http://poj.org/problem?id=3415题目大意:给定最大长度为10w的两个串,问两个串中子串长度均大于K并且相等的对数,比如a和aa,就是2.解题思路:把两个串拼接起来,中间用神奇地‘$'字符隔开。然后用倍增算法求sa数组、rank数组、height数组,然后利用height数组统计第一个串称A串的所有后缀与第二个串B串的所有原创 2012-04-28 17:48:49 · 1935 阅读 · 1 评论 -
Hdu 3247 Resource Archiver (字符串_AC自动机(状态压缩DP))
题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3280 (写这篇文章的时候航掉挂了就贴个浙大的链接)题目大意: 给定n个代码串,给定m个病毒串,让我们将n个代码串连起来,中间可以重叠,连接起来的代码串不能含病毒串,问最短的的连接字符串长度。n解题思路:综合题,需要用到AC自原创 2012-09-29 23:17:31 · 1958 阅读 · 1 评论 -
大视野 2434 阿狸的打字机 【字符串_AC自动机】【NOI 2011】
题目链接: http://61.187.179.132/JudgeOnline/problem.php?id=2434题目大意: 给定一个长串,可以解析成n个串,m个询问,每个询问为一对(x,y),询问串y包含几个串x,n、m、串总长度解题思路: 神一样的NOI题目,好题,因为不会做(哈哈,这是前段时间听到很恶搞的好题逻辑)。就因为这题我学习了树状数组,学习原创 2012-10-01 00:01:31 · 1798 阅读 · 1 评论 -
Hdu 3341 Lost's revenge (字符串_AC自动机(DP))
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3341题目大意:题目描述十分幽默,特别是Spring Brother,笑翻了。言归正传,题目给出n个数论DNA序列,含这些序列则可以增加数论水平,含几个就几级,再给出一个长为L的基因,问这个基因重组之后的最大数论水平是多少,如果一个DNA序列在基因中出现多次也要累加起来。原创 2012-05-22 17:16:39 · 1550 阅读 · 0 评论 -
Poj 1204 Word Puzzles (字符串_AC自动机)
题目链接:http://poj.org/problem?id=1204题目大意:给定一个n*m的大写字母组成的矩阵,再给定C个单词,这些单词可能出现在矩阵中,出现的方向可能是上、下、左、右、左上、右上、左下、右下,问这C个单词的第一个字母出现在矩阵中的什么位置,以及出现的方向。解题思路:这题有两种解法,第一种是用字典树+深搜,用单词建立一颗字典树,然后八个方原创 2012-05-21 21:56:56 · 1074 阅读 · 0 评论 -
Poj 1625 Censored! (字符串_AC自动机(DP))
题目链接:http://poj.org/problem?id=1625题目大意:给定n个不同的字符,用这些字符组成长度为m的字符串但是不能出现p个危险字符串中的任何一个,危险字符串也不可以作为子串,问方案数有几种。解题思路:这题可以用AC自动机+DP+高精度解。先不管那些危险字符串,本题可理解为n叉树,从根节点开始到叶子节点共有m层,方案数为n^m种,但是有原创 2012-05-22 01:42:21 · 1313 阅读 · 0 评论 -
fjnu校赛F题(字符串_后缀数组)
题目链接:http://acm.fafu.edu.cn/problem.php?id=1241题目描述: Welcome to Fjnu and don’t miss our fantasy lottery! In every period,there will be a given string and one of its substring is conside原创 2012-04-28 17:39:50 · 1481 阅读 · 0 评论 -
poj 1415|hdu 1298 T9 (字符串_字典树)
题目链接:http://poj.org/problem?id=1451 http://acm.hdu.edu.cn/showproblem.php?pid=1298题目大意:本题很有实际意义,模拟现实中的手机输入法,我最喜欢这种题目了,让我们在巩固算法的同时加强对现实事物的认知。言归正传,本题给定n个字符串和每个串出现的频率,每个字符原创 2012-05-02 15:53:31 · 988 阅读 · 2 评论 -
poj 2774 Long Long Message (字符串_后缀数组)
题目链接:http://poj.org/problem?id=2774题目大意:给定两个字符串,求最长的公共子串,和DP里的LCS(最长公共子序列)问题完全不一样解题思路:本题可用后缀数组解决,将两个串拼接,中间用和末尾都用一个很小很小的字符隔开,然后求各个后缀的rank以及每个后缀与其他后缀的最长公共前缀height数组,height数组中符合条件的最大值原创 2012-04-24 19:44:53 · 815 阅读 · 0 评论 -
hdu 1867 A + B for you again (字符串__KMP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1867题目描述:给定两个串s1,s2,让s1与s2合并,如果某个串的前缀和另一个串的后缀相等,则应去掉前缀,比如s1 = "abc"与 s2 = "bcd",则合并后为"abcd".要求答案竟可能短且字典序尽可能小。解题思路:与 hdu 2594 Simpso原创 2012-04-13 14:15:07 · 760 阅读 · 0 评论 -
poj 3450 Corporate Identity (字符串_KMP)
题目链接:http://poj.org/problem?id=3450题目大意:给定m个串,求每个串中都出现的最长子串,如果两个子串长度一样要求输出字典序小的一个答案。如果没有则输出“IDENTITY LOST”解题思路:枚举第一串的所有子串,再与其他每个串进行匹配,如果能匹配到则更新答案。测试数据:2abcxyz原创 2012-04-17 13:43:42 · 910 阅读 · 0 评论 -
hdu 2594 Simpsons’ Hidden Talents (字符串__KMP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2594题目大意:给定两个字符串s1,s2,求最长的s1前缀ss使得ss为s2的后缀,比如s1 = "youloveme",s2 = "fuckyou",所求ss即为“you"题目思路:将s1和s2拼为s3,在s3中求next数组,最终判断最后一个字母的next值,我的代码中nex原创 2012-04-12 23:08:16 · 1113 阅读 · 0 评论 -
hdu 3068 最长回文(字符串__多种解法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3068题目大意:问一个串中的最长回文长度。解题思路:1、Manacher解法,再每个字母前后面插入字符'#',再找最长回文串。2、拓展KMP解法3、后缀数组解法测试数据:aaaaabababbbaacacaabccccccab代原创 2012-04-13 19:12:53 · 949 阅读 · 0 评论 -
poj 2406 Power Strings (字符串__KMP)
题目链接:http://poj.org/problem?id=2406题目大意:问一个串最多游几个相同的串组成(至少一串)解题思路:求出next数组,循环节长度是strlen(str) - next[strlen(str)],记为len1,总长度记为len,如果有多个相等的串组成,len % len1 == 0,则答案是len / len1,否则就是1。为什么呢?拿个aaa原创 2012-04-16 13:42:17 · 622 阅读 · 0 评论 -
poj 2752 Seek the Name, Seek the Fame (字符串__KMP)
题目链接:http://poj.org/problem?id=2752题目大意:问一个串中既是前缀又是后缀的不同子串的长度解题思路:记题目所给串为str,长度为len,求出next数组,最长的那个子串长度即为next[len],再使i = next[len],此时的next[i]也是一个题目要求的子串,如此递归直到next[i] == -1 || next[原创 2012-04-16 14:24:12 · 593 阅读 · 0 评论 -
poj 2185 Milking Grid (字符串__KMP好题)
题目链接:http://poj.org/problem?id=2185题目大意:给定一个n*m的字符矩阵,每行字符会有若干个相同的串组成,最后一个重复串不一定要完整。问这个矩阵可由面积最小为多少的矩阵组成。解题思路:第一次看完题目,有点不解,又看了下测试数据,觉得没有思路,又重复看了一次题目,注意到一句话:Note that the dimensions o原创 2012-04-16 16:15:07 · 642 阅读 · 0 评论 -
hdu 2896 病毒侵袭 (字符串_AC自动机)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2896题目大意:给定n个病毒代码和m个网站源码,问每个网站源码包含哪些病毒。解题思路:用n个病毒代码构造一棵trie树,再增加fail指针。最后只要进行查询就可以了,差不多就是模板题。最后将求得的病毒序号排序输出即可。测试数据:原创 2012-05-03 16:26:09 · 771 阅读 · 0 评论 -
FZU 1926 填空 (字符串处理_KMP)
题目链接:http://acm.fzu.edu.cn/problem.php?pid=1926 题目大意:一题关于字符串匹配的中文题,给出一篇文章,由单词组成,再给定一个句子,句子中包含“_”,“_"可以任意匹配一个单词,问这个句子是否出现在文章中。 解题思路:这题可用KMP解。我的做法是为每个单词编个号,然后根据编号去匹配,"_"可任意匹配。但是这样明显慢,其原创 2012-05-11 11:23:18 · 599 阅读 · 0 评论 -
Zoj 1109 Language of FatMouse(字符串_字典树)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1109题目大意:给定若干对字符串,每个串对应另一个字符串。现在给出若干个字符串,输出它对应的字符串。 解题思路:用字典树求解,先建树,字典树节点保存的信息:是否是出现过的字符串末尾,是的话记录它对应的字符串。再对每个串进行查询。原创 2012-05-11 09:45:41 · 612 阅读 · 0 评论