Boring counting
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768
K (Java/Others)
Problem Description
...
分类:
其他好文 时间:
2014-08-19 10:55:54
阅读次数:
220
题目输出最长公共字串#define maxn 200010int wa[maxn],wb[maxn],wv[maxn],ws[maxn];int cmp(int *r,int a,int b,int l){return r[a]==r[b]&&r[a+l]==r[b+l];}//yuan lai z...
分类:
其他好文 时间:
2014-08-19 09:18:33
阅读次数:
250
UVA 12206 - Stammering Aliens
题目链接
题意:给定一个序列,求出出现次数大于m,长度最长的子串的最大下标
思路:后缀数组,搞出height数组后,利用二分去查找即可
这题之前还写过hash的写法也能过,不过写后缀数组的时候,犯了一个傻逼错误,把none输出成node还一直找不到。。。这是刷题来第二次碰到这种逗比错误了,还是得注意。。
代码...
分类:
其他好文 时间:
2014-08-18 23:38:03
阅读次数:
282
hdu题目poj题目参考了罗穗骞的论文《后缀数组——处理字符串的有力工具》题意:求两个序列的最长公共子串思路:后缀数组经典题目之一(模版题)//后缀数组sa:将s的n个后缀从小到大排序后将 排序后的后缀的开头位置 顺次放入sa中,则sa[i]储存的是排第i大的后缀的开头位置。简单的记忆就是“排第几的...
分类:
其他好文 时间:
2014-08-18 23:24:13
阅读次数:
367
UVA 11107 - Life Forms
题目链接
题意:给定一些字符串,求最长并且在所有字符串的连续子串中出现超过一半次数的字符串,输出这些字符串
思路:把这些字符串接起来,拼接部分用一个不会出现的不重复的字符,然后求这个长串的后缀数组,利用height数组去进行二分求解,二分的判断里面如果有一个连续height段超过了一半次数,那么就是可行的,如果所有连续段都没有出现超过...
分类:
其他好文 时间:
2014-08-18 18:44:22
阅读次数:
273
思路:这题是论文里的最后一道练习题了,不过最后一题竟然挺水的。
因为求的是未反转或者反转后,最长公共子串。
刚开始还真不知道怎么构建连接成一个字符串,因为需要有反转嘛!
但是其实挺简单的,把未反转的和反转后的字符串都连起来,中间用未出现过的字符隔开就行了!然后未反转的和反转的在同一组。
二分枚举最长的公共前缀长度,然后统计看看这个最长的长度在不在所有的组里,如果在就符合……
#inclu...
分类:
其他好文 时间:
2014-08-15 17:55:29
阅读次数:
277
思路:也是n个串连接成一个串,中间用没出现过的字符隔开,然后求后缀数组。
因为是不重叠的,所以和POJ 1743判断一样,只不过这里是多个串,每个串都要判断里面的最长公共前缀有没有重叠,所以用数组存下来就得了,然后再判断。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#defi...
分类:
其他好文 时间:
2014-08-15 16:02:09
阅读次数:
194
思路:先把所有的串连接成一个串,串写串之前用没出现过的字符隔开,然后求后缀;对height数组分组二分求得最长的公共前缀,公共前缀所在的串一定要是不同的,不然就不是所有串的公共前缀了,然后记下下标和长度即可。
刚开始理解错题意,然后不知道怎么写,然后看别人题解也不知道怎么意思,后面看了好久才知道题目意思理解错了。
时间四千多ms,别人才一百多ms,不知道别人怎么做的……
#include
#...
分类:
其他好文 时间:
2014-08-15 14:42:29
阅读次数:
277
思路:其实很简单,就是两个字符串连接起来,中间用个特殊字符隔开,然后用后缀数组求最长公共前缀,然后不同在两个串中,并且最长的就是最长公共子串了。
注意的是:用第一个字符串来判断是不是在同一个字符中,刚开始用了第二个字符的长度来判断WA了2发才发现。
#include
#include
#include
#include
#include
#include
#include
#include
#...
分类:
其他好文 时间:
2014-08-15 00:02:56
阅读次数:
248