RMQ
Wang_SF2015
这个作者很懒,什么都没留下…
展开
-
文章标题 基础RMQ
基础RMQ以求最大值为例,设d[i,j]表示[i,i+2^j-1]这个区间内的最大值。 那么在询问到[a,b]区间的最大值时答案就是max(d[a,k], d[b-2^k+1,k]) 其中k是满足2^k<=b-a+1(即长度)的最大的k,即k=[ln(b-a+1)/ln(2)] d的求法可以用动态规划,d[i, j]=max(d[i, j-1],d[i+2^(j-1), j-1])。void原创 2017-07-30 15:36:12 · 215 阅读 · 0 评论 -
文章标题 coderforces 514D : R2D2 and Droid Army (二分+RMQ预处理)
R2D2 and Droid ArmyAn army of n droids is lined up in one row. Each droid is described by m integers a1, a2, …, am, where ai is the number of details of the i-th type in this droid’s mechanism. R2-D2 w原创 2017-07-30 15:53:10 · 368 阅读 · 0 评论 -
文章标题 RMQ转LCA算法、基于倍增的方法求LACA
LCA以RMQ来实现LCA(最近公共祖先) 用RMQ来实现,首先把树链哈希到链上。在链上用RMQ求最小值。 哈希这个过程可以用深搜,然后记录每个人节点出现的顺序,比如 对于下面这个图 通过深搜可以得到 然后我们用一个first数组来表示每个节点第一次出现的位置(即数组下标),比如我们找D和G的LCA,D第一次出现的位置为3,G第一次出现的位置为8,然后找他们的LCA就是找[3,8]原创 2017-07-30 23:08:16 · 395 阅读 · 0 评论