http://acm.hdu.edu.cn/showproblem.php?pid=3183 A Magic Lamp Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
分类:
其他好文 时间:
2019-08-11 22:50:29
阅读次数:
134
概念 RMQ 是英文 Range Maximum/Minimum Query 的缩写,表示区间最大(最小)值。 解决 RMQ 问题的主要方法有两种,分别是 ST 表和线段树。本文主要讲 ST 表。 ST表 $ST$ 表,即 $Sparse-Table$ 算法,它预处理的时间是 $O(nlogn)$, ...
分类:
其他好文 时间:
2019-08-11 20:57:01
阅读次数:
86
链接:P3865 st表是一个用来解决RMQ问题的表 st表是一个二维数组,表示的是i~i+2^j-1范围的最值 (这东西和区间DP好像) 初始化: 因为2^0=1; 所以说st[i][0]存的就是i~i范围的最值(就是他自己) for(int i=1;i<=n;++i){ cin>>st[i][0 ...
分类:
其他好文 时间:
2019-08-11 18:55:37
阅读次数:
84
一、rmq问题 1.st表 2.线段树 3.树状数组 二、lca 三、基本数据结构 1.栈 2.队列 3.单调栈 4.链表 5.stl 6.并查集 7.堆/优先队列 四、分治 1.点分治 2.边分治 3.树链剖分 4.基于询问的分治 5.cdq分治 五、其他 1.可持久化线段树 2.KD-tree ...
分类:
其他好文 时间:
2019-08-11 17:27:04
阅读次数:
70
首先安利自己倍增求LCA的博客,前置(算不上)知识在此。 LCA有3种求法:倍增求lca(上面qwq),树链剖分求lca(什么时候会了树链剖分再说。),还有,标题。 是的你也来和我一起学习这个了qwq。 开始吧。 众所周知,每当你dfs时,你都能产生一棵dfs树,可以根据你的dfs序来构建。 suc ...
分类:
其他好文 时间:
2019-08-10 21:39:46
阅读次数:
142
网址:https://vjudge.net/problem/POJ-2019 题意: 给出一个矩阵,求左下角坐标为$(x,y)$,长度为$b$的正方形的包含的数的最大值和最小值。 题解: 一、二维ST表: 一维$ST$表可以快速处理一维$RMQ$问题,这次是二维问题,好,那就上二维$ST$表,构造方 ...
分类:
其他好文 时间:
2019-08-10 21:32:14
阅读次数:
79
f[i][j] 表示 以i号点为起点 的长度为 2^j 次方 终点为i+2^j-1 的最大或者最小值 打表时间复杂度 O(Nlog2(N)) 查询O(1) 打表代码: 将区间分为两段 [i ,i+2^(j-1)-1 ] 和[2^(j-1)+i,i+2^j-1] 查询代码: k 为区间长度的log2 ...
分类:
其他好文 时间:
2019-08-10 11:27:56
阅读次数:
97
RMQ算法全称为(Range Minimum/Maximum Query)【区间最值】 主要是这两种算法解决区间最值问题:线段树和稀疏表(Sparse Table) ST算法是解决RMQ(区间最值)问题,它能在O(nlogn)的时间预处理,然后O(1)回答。 其原理是倍增,f[i][j]表示从i位起 ...
分类:
其他好文 时间:
2019-08-09 17:36:42
阅读次数:
100
| A | B | C | D | E | | : : | : : | : : | : : | : : | | 贪心 | 数学 | dp | 计数,组合 | 单调队列,rmq | | 1100 | 1100 | 1400 | 1700 | 2100 | <! more A. Drinks Choos ...
分类:
其他好文 时间:
2019-07-30 10:47:28
阅读次数:
77