码迷,mamicode.com
首页 >  
搜索关键字:最长公共前缀    ( 324个结果
BZOJ 1014 JSOI2008 火星人prefix Splay+Hash+二分
题目大意:给定一个字符串,提供下列操作: 1.查询从x开始的后缀和从y开始的后缀的最长公共前缀长度 2.将x位置的字符修改为y 3.在x位置的字符后面插入字符y 看到这题一开始我先懵住了。。。这啥。。我第一时间想到的是后缀数据结构 但是不会写 而且后缀数据结构也不支持修改操作 后来无奈找了题解才知道是Hash+二分。。。 太强大了 Hash+二分打爆一切啊 用Splay维护这个字符串的...
分类:Web程序   时间:2014-10-03 14:22:14    阅读次数:961
BNU 34990 Justice String (hash+二分求LCP)
思路:枚举第一个字符串的位置,然后枚举最长公共前缀的长度,时间即会下降…… #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include #include #define mem(a,b) memset(...
分类:其他好文   时间:2014-09-30 19:14:09    阅读次数:184
URAL 1297 Palindrome 后缀数组+RMQ
本题是利用后缀数组求最长的回文串。方法是将字符串反转之后拼接到原来的字符串末尾,中间用一个没有出现过的分割符隔开,原因是防止最长公共前缀横跨两个串。之后分别枚举回文串的中点,以及回文串长度是奇数还是偶数,看一下对应位置的最长公共前缀即可。这里的求最长公共前缀要处理RMQ问题,线段树固然可以解决,但是...
分类:其他好文   时间:2014-09-26 22:10:08    阅读次数:142
[转][LeetCode]Longest Common Prefix ——求字符串的最长公共前缀
题记:这道题不难但是很有意思,有两种解题思路,可以说一种是横向扫描,一种是纵向扫描。横向扫描:遍历所有字符串,每次跟当前得出的最长公共前缀串进行对比,不断修正,最后得出最长公共前缀串。纵向扫描:对所有串,从字符串第0位开始比较,全部相等则继续比较第1,2...n位,直到发生不全部相等的情况,则得出最...
分类:其他好文   时间:2014-09-22 00:12:11    阅读次数:267
BNUOJ 34990 北京邀请赛最后一题
思路:这题看了题解说是后缀数组做的,然后自己就偿试了一下,唉……没想到不管是不管是倍增算法的后缀还是DC3算法的后缀都T了,实在无计可施了,可能只有哗然可以过了。不过比赛那天题解说是没有卡后缀的。只是比赛那天自己还不会后缀数组,所以这题自己根本就没有看到。因为后缀自己练得还比较少,这题正好用RMQ求任意两个后缀之间的最长公共前缀,所以自己就拿这题练手了,虽然T了,但是倍增的算法和DC3的算法都贴上...
分类:其他好文   时间:2014-09-03 22:44:57    阅读次数:365
uva 12338 - Anti-Rhyme Pairs(后缀数组+RMQ)
题目链接:uva 12338 - Anti-Rhyme Pairs 题目大意:给定若干个字符串,每次询问两个字符串的最长公共前缀。 解题思路:本来应该将每个字符串连接起来做后缀数组,但其实可以直接把一个字符串看成是一个字符,然后排序了就对应是SA数组,然后处理height即可。然后根据后缀数组的性质,字符串i和j的最长公共前缀长度即为rank[i]+1~rank[j]之间height的...
分类:其他好文   时间:2014-09-02 22:54:05    阅读次数:292
【leetcode】Longest Common Prefix
题目: Write a function to find the longest common prefix string amongst an array of strings. 解析:求字符串数组中所有数组的最长公共前缀,重点考察细节和边界条件,比如: [] :输入字符串数组为空,要判断if (strs .size() == 0) ...
分类:其他好文   时间:2014-08-28 17:02:31    阅读次数:253
poj 2774 Long Long Message,后缀数组,求最长公共子串 hdu1403
题意:给出两个字符串,求最长公共子串的长度。 题解:首先将两个字符串连在一起,并在中间加一个特殊字符(字串中不存在的)分割,然后两个串的最长公共字串就变成了所有后缀的最长公共前缀。这时就要用到height数组,因为任意两个后缀的公共前缀必定是某些height值中的最小值,而这个值如果最大则一定是height中的最大值。在此题中还要注意height最大一定要在两个值所代表的后缀分属不同的字...
分类:其他好文   时间:2014-08-24 10:19:22    阅读次数:184
UVA 12338 - Anti-Rhyme Pairs(后缀数组+RMQ)
UVA 12338 - Anti-Rhyme Pairs 题目链接 题意:给定一些字符串,每次询问求出两个字符串的最长公共前缀的长度 思路:把字符串排序,就能求出height和rank数组,然后利用RMQ查询即可 代码: #include #include #include #include #include using namespace std; co...
分类:其他好文   时间:2014-08-20 01:24:35    阅读次数:300
SPOJ 220后缀数组:求每个字符串至少出现两次且不重叠的最长子串
思路:也是n个串连接成一个串,中间用没出现过的字符隔开,然后求后缀数组。 因为是不重叠的,所以和POJ 1743判断一样,只不过这里是多个串,每个串都要判断里面的最长公共前缀有没有重叠,所以用数组存下来就得了,然后再判断。 #include #include #include #include #include #include #include #include #include #defi...
分类:其他好文   时间:2014-08-15 16:02:09    阅读次数:194
324条   上一页 1 ... 29 30 31 32 33 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!