综合性很强的一道题目,结合manacher,后缀数组,哈希,RMQ,二分可解。基本思路是通过manacher可以找到所有可能的回文串,哈希去重,后缀数组二分找数目。最后暴力求解。需要注意kth需要为__int64。 1 /* 4426 */ 2 #include <iostream> 3 #incl
分类:
其他好文 时间:
2016-02-05 01:49:59
阅读次数:
177
链剖,居然还可以这样求LCA,学习了orz直接引用清华爷gconeice的题解吧显然,暴力求解的复杂度是无法承受的。考虑这样的一种暴力,我们把 z 到根上的点全部打标记,对于 l 到 r 之间的点,向上搜索到第一个有标记的点求出它的深度统计答案。观察到,深度其实就是上面有几个已标记了的点(包括自身)...
分类:
其他好文 时间:
2015-12-14 23:12:20
阅读次数:
326
下面将介绍三种有关字符串匹配的算法,一种是朴素的匹配算法,时间复杂度为O(mn),也就是暴力求解。这种方法比较简单,容易实现。一种是KMP算法,时间复杂度为O(m+n),该算法的主要任务是求模式串的next数组。另外还有一种对KMP算法的改进,主要是求nextval数组。第一种朴素的匹配算法:int...
分类:
编程语言 时间:
2015-11-26 12:34:29
阅读次数:
170
next数组的历史 有关字符串的模式匹配算法中,比较容易写出的是朴素的匹配算法也就是一种暴力求解方式,但是由于其时间复杂度为子串长度和主串长度的乘积,例如strlen(subStr) = n,strlen(mainStr) = m,则其时间复杂度为O(mn)。 为了能够得到更有效的匹配算法,D......
分类:
编程语言 时间:
2015-11-26 12:26:35
阅读次数:
140
题目乘积最大子序列找出一个序列中乘积最大的连续子序列(至少包含一个数)。样例比如, 序列[2,3,-2,4]中乘积最大的子序列为[2,3],其乘积为6。解题法一:直接暴力求解时间复杂度O(N2)public class Solution { /** * @param nums: an ...
分类:
其他好文 时间:
2015-11-20 19:52:24
阅读次数:
117
分块算法主要用于给定序列的区间询问问题,能够以较小的时间代价暴力求解,时间复杂度一般在O(n*n^0.5)。关键在O(1) 维护好某一区间在增加或者减少一个边界元素所带来的影响。需要注意的就是在更新的区间的时候要先放大在缩小,否则可能出现当前区间左右边界互换的情况,这 个影响某一些题可能没有影响,但...
分类:
其他好文 时间:
2015-11-10 00:02:37
阅读次数:
301
问题描述给定一个十进制整数N,求出从1到N的所有整数中出现”1”的个数。例如:N=2时 1,2出现了1个 “1” 。N=12时 1,2,3,4,5,6,7,8,9,10,11,12。出现了5个“1”。方法一 暴力求解最直接的方法就是从1开始遍历到N,将其中每一个数中含有“1”的个数加起来,就得到了问...
分类:
其他好文 时间:
2015-10-09 15:04:26
阅读次数:
135
题目:给定N个整数的序列{A1,A2,...,AN},求函数 分析:A1,A2,...,AN是可正可负的整数序列,本题欲求从i到j的子序列和的最大值,不必求出是哪个序列。最容易想到的办法是暴力求解法,即求出所有子序列的和,找出它们的最大值,时间复杂度T(N)=O(N2);...
分类:
其他好文 时间:
2015-09-17 19:34:39
阅读次数:
145
1、题目如图所示,求出所有满足条件的情况:这道题的第一思路就是找出隐含关系,然后暴力求解。假设所填空格从上往下,从左往右依次为a,b,c,d,e,f,g,h即:ab9cdefgh通过找隐含关系可以找到如下关系:a+b=13;0<=a<=4;1<=f<=25;e+h=5;0<=e<=5;接下来就是暴力...
分类:
其他好文 时间:
2015-09-09 22:44:11
阅读次数:
246
莫队..先按sqrt(n)分块, 然后按块的顺序对询问排序, 同块就按右端点排序. 然后就按排序后的顺序暴力求解即可. 时间复杂度O(n1.5)------------------------------------------------------------------------------...
分类:
其他好文 时间:
2015-09-02 20:42:16
阅读次数:
199