自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 SPOJ694 && SPOJ705 ——不同子串的总数

题意:给定字符串S,求S的不同子串的总数量。求出SA数组与Height数组,每个子串必然是某个后缀的前缀。令S的长度为N,则后缀SA[i]可以贡献出N-SA[i]个前缀。但其中有Height[i]个与之前的是重复的,因此要减去。另外,在套模板的时候,处理的字符串S实际上比源字符串多一个结束标记,因此计算出的不同子串数量比答案要多N(N为S的长度,非源的长度,实际上就是源长度加1)。SPOJ694//

2015-04-11 22:53:37 1236

原创 POJ3261——重复K次的子串

题意:给定长度为N的整数串,问至少重复K次的子串最长是多少,重复子串之间可以重迭。求出SA与Height数组,首先将问题转为判定性问题,即:给定长度L,问存不存在长度为L且重复K次的子串。然后二分搜索最大的可能的L即可。存在长度为L且重复K次的子串等价于:Height数组中存在一个长度至少为K-1的区间[i,j],Height[i,j]的值全部都不小于L。另外源数组中的元素取值范围在百万之间,使用基

2015-04-11 22:35:22 919

原创 POJ1743——不可重迭的最长重复子串

题意:给定一系列的整数作为音阶,旋律为相邻音阶之差。问最长的主旋律是多长,主旋律需满足3个条件: 1. 长度至少为5; 2. 至少重复出现2次; 3. 主旋律各不重迭。对源进行变换以后,就是问不重迭的最长重复子串是多长。求出SA数组与Height数组以后。 首先将问题改为判定性问题,即给定长度L,问是否存在L长度的不重迭重复子串。其等价于在Height数组中找到一个区间[i,j],He

2015-04-11 22:32:41 483

原创 后缀数组

给定一个长度为N的字符串S,令Si为从第i个位置开始的S的后缀,i称为后缀Si的序号,i取值范围从0到N-1。显然S有N个后缀。将这N个后缀按字典序升序排列,并用一个数组记录其后缀序号,则该数组称为后缀数组。令S=adbc,则S共有4个后缀,分别为 S0=adbc S1=dbc S2=bc S3=c 其字典序升序是S0、S2、S3、S1,所以字符串S的后缀数组是 SA[] = {0, 2

2015-04-10 23:20:31 1095

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除