码迷,mamicode.com
首页 >  
搜索关键字:rmq    ( 1013个结果
RMQ 模板一份
1voidRMQ_Init(constvector&A)2{3intn=A.size();4for(inti=0;i<n;i++)d[i][0]=A[i];5for(intj=1;(1<<j)<=n;j++)6for(inti=0;i+(1<<j)-1<n;i++)7d[i][j]=min(d[i]...
分类:其他好文   时间:2014-06-18 15:36:43    阅读次数:186
hdu 4691 最长公共前缀 后缀数组 +lcp+rmq
http://acm.hdu.edu.cn/showproblem.php?pid=4691 去年暑假多校赛的题,当时还不会后缀数组 现在会了,其实自己组合后缀数组跟rmq还是对的,但是题意理解有问题,于是折腾了很久,,,, 此处简单解释下题目样例吧,希望对读者有帮助  以最后一组数据为例 myxophytamyxopodnabnabbednabbingnabit 6 0 9 9 1...
分类:其他好文   时间:2014-06-18 06:09:03    阅读次数:407
UVA 11235 RMQ算法
上次的湘潭赛的C题,用线段树敲了下还是WA,不知道为何,我已经注意了处理相同数据,然后他们当时用的RMQ。所以学了下RMQ,感觉算法思想是一样的,RMQ用了DP或者是递推,由单个数到2^k往上推,虽然有部分重叠的,也没关系,因为RMQ是求区间最值嘛然后这道题目,要把出现次数化为最值,构造一个新的数组...
分类:其他好文   时间:2014-06-16 06:21:13    阅读次数:248
UESTC 912 树上的距离 --LCA+RMQ+树状数组
1.易知,树上两点的距离dis[u][v] = D[u]+D[v]-2*D[lca(u,v)] (D为节点到根节点的距离)2.某条边权值一旦改变,将会影响所有以v为根的子树上的节点到根节点的距离,很明显,DFS一遍后以v为根的子树在DFS序列中是连续的一段,及转化为区间更新问题,可以用树状数组。做法...
分类:其他好文   时间:2014-06-15 11:42:02    阅读次数:213
Tarjan算法各种&RMQ& POJ 3694
关于tarjan的思想可以在网上搜到,具体我也不太清楚,应该说自己理解也不深,下面是做题经验得到的一些模板。其中有很多转载,包括BYVoid等,感谢让我转。。。望各路大神愿谅有向图求连通分量的一般方法: 1 void Tarjan(u) { 2 dfn[u]=low[u]=++index 3...
分类:其他好文   时间:2014-06-13 16:14:11    阅读次数:395
HDU3183(RMQ+鸽巢原理)
题目的意思是对于一个n位数,删除m个位后,得到的最小数是什么,比如12345 2,删除两个位,得到最小的就是123.实际上这题目解法很多,好像有贪心,线段树,RMQ等,因为我最近在学习RMQ,所以就用RMQ了。 这题目用了一个鸽巢原理,得到的m-n位数的第一位,必然出现在1~m-n+1,这个由鸽巢原理就十分明显了(如果1~n-(m-n)+1都没有的话,剩下的m-n-1个位是不可能凑出m-n个位的...
分类:其他好文   时间:2014-06-09 23:40:43    阅读次数:315
理解RMQ问题和ST算法的原理
1.RMQ问题     RMQ (Range Minimum/Maximum Query):对于长度为n的数组A,回答若干询问RMQ(A,i,j)(i,jRMQ问题是指求区间最值的问题。最简单的方法,就是遍历数组直接搜索,但是这种方式时间复杂度是O(n)。对于数组长度较大,性能要求高的场景不适用。 2.ST(Sparse Table)算法 ST算法是一种更加高效的算法,以O(nlog...
分类:其他好文   时间:2014-05-25 22:28:29    阅读次数:375
POJ 2019 Cornfields 二维RMQ
题目来源:POJ 2019 Cornfields 题意:求正方形二维区间最大最小值的差 思路:直接二维ST搞 试模版而已 #include #include #include using namespace std; const int maxn = 255; int dp[maxn][maxn][8][8]; int dp2[maxn][maxn][8][8]; int a[...
分类:其他好文   时间:2014-05-25 10:21:07    阅读次数:246
RMQ模版
ST int dp[maxn][20]; int a[maxn]; void RMQ_init(int n) { int i,j,k; for(i = 1; i <= n; i++) dp[i][0] = a[i]; k = (int) (log((double)n + 0.2) / log(2.0)); for(j = 1; j <= k; j++) for(i =...
分类:其他好文   时间:2014-05-25 09:45:08    阅读次数:227
UVALive 6609(Minimal Subarray Length)维护递增序列|RMQ
题意:给一个整数序列(可能有负数),求最短的连续序列使得序列之和大于等于整数x; 解法:第一种是On的复杂度:                   我们要的是sum[j]-sum[i]>=x,如果有两个决策j = sum[j'],那么j就是没用的。即维护一个sum[j]递增序列。然后每次可以二分查找,但是这里有个特点就是要得到最近的,可以同时维护一个left指针,left指针用于跟进更...
分类:其他好文   时间:2014-05-15 03:20:26    阅读次数:303
1013条   上一页 1 ... 99 100 101 102 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!