rmq
weixin_44019404
这个作者很懒,什么都没留下…
展开
-
POJ - 2763 动态lca加dfs序树状数组
一开始用树链剖分做的,后来看题解有一个稍微代码量少一点而且不用一错误的方法,lca加上树状数组。 对一条边变成w等于把深的点包括自己和子树全部加上w,即在dfs中l,r区间更新即可。 第一次写了st表求lca,有点不顺手,记录一下模板。 #include<iostream> #include<cstring> #include<algorithm> #inclu...原创 2019-10-30 18:25:53 · 95 阅读 · 0 评论 -
rmq
rmq快速离线查询当前区间的最值。i表示从i开始第i为,j表示往后2^j次方位。 void rmq_isit(bool ok) { for(int i=1;i<=n;i++) mm[i][0]=mi[i][0]=a[i]; for(int j=1;(1<<j)<=n;j++) { for(int i=1;...原创 2019-03-19 19:36:55 · 234 阅读 · 0 评论 -
POJ 3368
题目给了不降序列,让我们去区间询问区间最长连续相等序列。 我们这里对于例子 10 3 -1 -1 1 1 1 1 3 10 10 10 做出这样的二元对。 (-1,2),(1,4),(3,1),(10,4) 这样一来,对于二元对第二个数字即出现次数,可以用rmq来进行维护,表示求二元对中,第二个数字最大的那个。即是我们需要求的最大序列长度。 然而有问题的是,如果查询,1,3,这样的区间,(-1,2...原创 2019-04-02 14:18:17 · 386 阅读 · 0 评论