这个方法要开倍增求 $LCA$ 方法的两倍空间, 还要开额外数组记录深度和 $dfn$, 各位勇士慎重。 可以 $O(n + n\log n)$ 预处理 $O(1)$ 动态回答 $LCA$ (常数和RMQ一样), 不谈空间缺点的话还是吊打倍增求 $LCA$ 的。 算法流程: 算法的过程就是在便利有根 ...
分类:
其他好文 时间:
2020-04-27 11:26:33
阅读次数:
56
https://loj.ac/problem/2074 我看到这个题的第一反应是做单调栈: $p[i] =h[j]+\sqrt{|i j|} h[i]$ 就$sqrt$这函数吧,也是单调的,性质应该和直线差不多,所以单调队列维护交点单调的若干条曲线。 求交点可以用二分求,时间复杂度是$O(n~log ...
分类:
Web程序 时间:
2020-04-18 22:33:57
阅读次数:
80
之前参加 rocketmq 的 meetup,台上有人讲,kafka 不支持同步刷盘,当时没太在意,今天抽空看了下代码: kafka 提供了配置参数来支持同步刷盘,和 rocktmq 的做法不同(4.7 的 rmq 在 sync_disk 模式,统一在 GroupCommitService 中刷盘, ...
分类:
其他好文 时间:
2020-04-12 12:49:37
阅读次数:
211
迅哥讲解(说实话没有认真听,不过关系不大) RMQ:Range Minimum Maximum Query 给定一个序列A[1…N],问A[i…j]之间的极值 如果只问一次, 显然是O(N) 标准RMQ问题是:不停的查询同一个序列上的不同区间内的极值 序列A的长度N,一共Q次查询 纯暴力法:O(NQ ...
分类:
其他好文 时间:
2020-03-12 23:16:13
阅读次数:
57
1 #include<bits/stdc++.h> 2 3 using namespace std; 4 5 const int N = 1e5 + 5; 6 7 int f[N][30],a[N]; 8 9 int read(){ 10 int x=0,flag=1; 11 char ch=get ...
分类:
编程语言 时间:
2020-03-11 19:34:24
阅读次数:
71
hdu-3183A Magic Lamp 题意:对给定m位数删除其中n位,不改变剩余数字排列,求剩余数字组成的最小数。 思路:选m - n个数 RMQ求最小值 t数组求最小值第一次出现的位置 左右区间随之改变 wa了两次 没特判 m = n 的情况 / t数组存了最小值最后一次出现的位置(25行没用 ...
分类:
其他好文 时间:
2020-03-06 01:38:54
阅读次数:
69
$(\displaystyle \sum^{}_{1 include include include using namespace std; const int N = 5e5 + 3; long long ans; int cnt, l[N], r[N], s[N], lg[N], T, rmq ...
分类:
其他好文 时间:
2020-03-02 10:44:00
阅读次数:
56
题目链接 先dp求出以每个红色区域右下角为中心的能成为logo的最大半径 然后二维RMQ预处理,之后可O(1)询问任意子矩形中的最大值 最后对于每个询问二分最大logo的半径mid,这样问题就转化成判定是否存在半径大于等于mid的logo,在(x1+mid-1,y1+mid-1,x2-mid,y2- ...
分类:
其他好文 时间:
2020-02-29 22:38:09
阅读次数:
107
ST表算法入门详解 关于ST表,有很多文章,这里本蒟蒻也来发一波~~ 希望能为您提供帮助~~ 1.ST表的介绍 ST表算法全称Sparse-Table算法,是由Tarjan提出的一种解决RMQ问题(区间最值)的强力算法。离线预处理时间复杂度 θ(nlogn),在线查询时间 θ(1),可以说是一种非常 ...
分类:
编程语言 时间:
2020-02-25 12:57:11
阅读次数:
101
ST表超级详解 关于ST表,有很多文章,这里本蒟蒻也来发一波~~ 希望能为您提供帮助~~ 1.ST表的介绍 ST表算法全称Sparse-Table算法,是由Tarjan提出的一种解决RMQ问题(区间最值)的强力算法。离线预处理时间复杂度 θ(nlogn),在线查询时间 θ(1),可以说是一种非常高效 ...
分类:
其他好文 时间:
2020-02-08 14:05:00
阅读次数:
113