Bob’s Race
Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2115 Accepted Submission(s): 658
Problem Description
Bob wants to hol...
分类:
其他好文 时间:
2014-06-30 07:37:16
阅读次数:
284
使用线段树预处理,可以使得查询RMQ时间效率在O(lgn)。
线段树是记录某范围内的最小值。
标准的线段树应用。
Geeks上只有两道线段树的题目了,而且没有讲到pushUp和pushDown操作,只是线段树的入门了。
参考:http://www.geeksforgeeks.org/segment-tree-set-1-range-minimum-query/
我修改了一下他的程序,使用...
分类:
其他好文 时间:
2014-06-22 18:08:05
阅读次数:
217
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
http://acm.hdu.edu.cn/showproblem.php?pid=4691
去年暑假多校赛的题,当时还不会后缀数组
现在会了,其实自己组合后缀数组跟rmq还是对的,但是题意理解有问题,于是折腾了很久,,,,
此处简单解释下题目样例吧,希望对读者有帮助 以最后一组数据为例
myxophytamyxopodnabnabbednabbingnabit
6
0 9
9 1...
分类:
其他好文 时间:
2014-06-18 06:09:03
阅读次数:
407
上次的湘潭赛的C题,用线段树敲了下还是WA,不知道为何,我已经注意了处理相同数据,然后他们当时用的RMQ。所以学了下RMQ,感觉算法思想是一样的,RMQ用了DP或者是递推,由单个数到2^k往上推,虽然有部分重叠的,也没关系,因为RMQ是求区间最值嘛然后这道题目,要把出现次数化为最值,构造一个新的数组...
分类:
其他好文 时间:
2014-06-16 06:21:13
阅读次数:
248
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的思想可以在网上搜到,具体我也不太清楚,应该说自己理解也不深,下面是做题经验得到的一些模板。其中有很多转载,包括BYVoid等,感谢让我转。。。望各路大神愿谅有向图求连通分量的一般方法:
1 void Tarjan(u) { 2 dfn[u]=low[u]=++index 3...
分类:
其他好文 时间:
2014-06-13 16:14:11
阅读次数:
395
题目的意思是对于一个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
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