
字符串
文章平均质量分 83
dr5459
这个作者很懒,什么都没留下…
展开
-
UVA11019----AC自动机(要深刻理解)*
题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1960题目意思:给你一个n*m的字符矩阵再给你一个x*y的字符矩阵问你n*m的矩阵里面有多少个x*y的矩阵我把这道题目理解为一道二维的AC自动机首先对x*y的里面的每一行都作原创 2013-05-20 19:34:06 · 1040 阅读 · 0 评论 -
POJ3261----后缀数组
题意:http://poj.org/problem?id=3261题目意思:给你一个序列,要你求出一个最长的重复序列的长度且这个序列在母序列中至少重复了k次这个重复序列是可以重叠的解题思路:二分答案,然后将后缀分成若干组。不同的是,这里要判断的是有没有一个组的后缀个数不小于k。如果有,那么存在k 个相同的子串满足条件,否则不存在。这个做法的时间复杂度为O(nlogn)。原创 2013-06-07 20:47:07 · 712 阅读 · 0 评论 -
SPOJ705----后缀数组
题目地址:http://www.spoj.com/problems/SUBST1/题目意思和解题思路都和SPOJ694一样,只是范围更大但是我们采用的算法无压力,直接碾压过。详见:http://blog.youkuaiyun.com/dr5459/article/details/9051149代码:#include#include#includeusing namespace std原创 2013-06-07 21:33:35 · 1017 阅读 · 0 评论 -
SPOJ694----后缀数组
题目地址:http://www.spoj.com/problems/DISUBSTR/题目意思:给你一个字符串,要你去除他的不同的子串的数量解题思路:每个子串一定是某个后缀的前缀,那么原问题等价于求所有后缀之间的不相同的前缀的个数。如果所有的后缀按照suffix(sa[1]), suffix(sa[2]),suffix(sa[3]), …… ,suffix(sa[n])的顺原创 2013-06-07 21:27:46 · 1031 阅读 · 0 评论 -
POJ1743-----后缀数组+二分(男人八题之一)
题目地址:http://poj.org/problem?id=1743题目意思:给你n个音符,每个音符到另外一个音符,会有一个转换值,即差值,形成一个串。让你找出里面最长的重复串(至少重复2次),且不相互覆盖要求,如果组成这些串的音符要>=5,即音乐差值组成的串要大于等于4否则输出0解题思路:先二分答案,把题目变成判定性问题:判断是否存在两个长度为k 的子串是相同的原创 2013-06-07 19:50:59 · 920 阅读 · 0 评论 -
URAL1297------后缀数组
题目地址:http://acm.timus.ru/problem.aspx?space=1&num=1297题目意思:给你一个字符串,要你求出最长的回文子串解题思路:把原串的反串加个原串后面,中间加个没有出现过的字符然后,原串中,下标i在反串中对应的位置为2*l-i如果求以i为对称轴的回文串,我们求suffix(i)和suffix(2*l-i)的LCP如果求以i和i+1为对原创 2013-06-09 22:22:13 · 910 阅读 · 0 评论 -
POJ2778----AC自动机的变形+矩阵快速幂(AC自动机和矩阵快速幂必做题)
题目地址:http://poj.org/problem?id=2778题目意思:给你M个DNA的小序列然后要你求出长度为N但是不含给出的M个小DNA的情况有多少种这是一道很好的题目对算法的要求很高,具体的思路我是在:http://blog.youkuaiyun.com/morgan_xww/article/details/7834801学来的,所以可以移步去看原创我主要说说几个要注意的原创 2013-05-24 20:24:56 · 1114 阅读 · 0 评论 -
ZOJ3430----AC自动机加模拟(巨坑,心里素质不好的人别做)
题目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4114题目的意思:给你一个加密的字符串,让你用二进制表示,每六位一个字符然后再用8位二进制表示一个明文的字符,这是翻译的过程。给你一些病毒的暗文,再给你一些长的字符串的暗文问你每个长字符串暗文中出现了几种病毒,看清楚,是几种,不是几个。我为此WA了一原创 2013-05-21 18:27:29 · 910 阅读 · 0 评论 -
HDU3065----AC自动机的初级阶段
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3065题目意思:给你n个子串,问你在一个大的字符串里面每个子串出现了多少次裸的AC自动机就是统计那里稍作改动对于每一个子串的结尾的val[u]=v这个v就是第几个的意思,便于后面统计然后加入统计函数void tongji(int j){ if(j)原创 2013-05-20 20:11:07 · 778 阅读 · 0 评论 -
HDU3336------KMP+DP
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3336题目意思:给你一个字符串,要求求出所求的前缀在字符串一共出现了多少次解题思路:KMP+DP我们令dp[i]表示以s[i]结尾的字符串中出现了几个以s[i]结尾的前缀那么对于每个i而言,我们就是找出在1~i-1里面的和s[i]相匹配的前缀j得到dp[i]=dp[j]+1(原创 2013-06-20 11:03:17 · 802 阅读 · 0 评论