poj 3419 求一段区间内的最长不重复子串
2013-05-21 10:32
260 查看
这个题实际上预处理出两个数组就好了,st[i]表示i位置往左最远能延伸到哪里,【st[i],i】为不重复子串
那么在询问一段区间内最长的不重复子串是多长的时候有两种情况 , 对于L R区间内所有的【st[i] , i】,有一部分st[i]是<L的,所以这一部分的值变成了(i - L + 1),
由于st是单调的,显然,,,所以可以二分找出最右的那个i满足st[i]<L,然后左边的部分就是i-L+1,右边的部分就直接用RMQ查询最值就好了,因为这一部分的【st[i],i】完全在L,R区间内。。。。
那么在询问一段区间内最长的不重复子串是多长的时候有两种情况 , 对于L R区间内所有的【st[i] , i】,有一部分st[i]是<L的,所以这一部分的值变成了(i - L + 1),
由于st是单调的,显然,,,所以可以二分找出最右的那个i满足st[i]<L,然后左边的部分就是i-L+1,右边的部分就直接用RMQ查询最值就好了,因为这一部分的【st[i],i】完全在L,R区间内。。。。
相关文章推荐
- poj 3419 Difference Is Beautiful (区间最长连续不重复数 dp+二分+RMQ)
- 字符串 后缀数组(可重叠的k 次最长重复子串)poj 3261
- POJ - 1743 - Musical Theme(后缀数组 - 不可重叠最长重复子串)
- POJ 3261 Milk Patterns (离散化+后缀数组 k次最长重复子串(可重叠))
- POJ 3261 可重叠的 k 次最长重复子串【后缀数组】
- POJ 1961(KMP前缀最长重复子串)
- POJ 1743 Musical Theme(后缀数组求不可重叠最长重复子串)
- poj 1743 男人八题之后缀数组求最长不可重叠最长重复子串
- POJ 3261 可重叠的出现K次的最长重复子串
- POJ 1743 Musical Theme(不可重叠最长重复子串)
- POJ 1743 后缀数组不重叠最长重复子串
- POJ 1743 Musical Theme(后缀数组[不可重叠最长重复子串])
- POJ 3261 Milk Patterns (后缀数组,求可重叠的k次最长重复子串)
- poj 1743 Musical Theme(不可重叠最长重复子串)
- poj 1743 后缀数组+二分答案 求一个串的最长无重叠的重复出现次数最多的子串
- POJ - 3261 Milk Patterns (后缀数组求可重叠的 k 次最长重复子串)
- poj 3261 Milk Patterns(后缀数组-最长重复子串)
- POJ 3261 Milk Patterns 可重复k次的最长重复子串
- poj 1743 字符串 后缀数组 不可重叠最长重复子串
- POJ 3261 - Milk Patterns (可重叠的k次最长重复子串 后缀数组)