非常优秀的静态区间RMQ,在不需要修改又有多次询问时快的飞起 ...
分类:
其他好文 时间:
2018-05-10 20:49:10
阅读次数:
187
#include<bits/stdc++.h> using namespace std; #define LOACL freopen("in","r",stdin);\ freopen("out","w",stdout); const int sz = (int)1e6 + 5; #define C ...
分类:
其他好文 时间:
2018-05-09 22:47:02
阅读次数:
202
介绍一种解决最近公共祖先的在线算法,st表,它是建立在线性中的rmq问题之上。 代码: ...
分类:
编程语言 时间:
2018-05-06 19:58:20
阅读次数:
207
ST表 st表可以解决区间最值的问题。可以做到O(nlogn)预处理 ,O(1)查询,但是不支持修改。 st表的大概思路就是用st[i][j]来表示从i开始的2的j次方个树中的最值,查询时就从左端点开始,找到区间长度是2的多少次方,然后进行查询。然而,很明显,我们要查询的区间长度不一定是2的多少次幂 ...
分类:
编程语言 时间:
2018-05-04 20:23:58
阅读次数:
297
luogu3865 这就是倍增的思想、、 不支持更改,建表是nlogn 然后查询两个部分重叠比较,O(1) ...
分类:
其他好文 时间:
2018-05-04 13:55:29
阅读次数:
158
https://www.lydsy.com/JudgeOnline/problem.php?id=3879 把所有的后缀取出,按rank排序 求出相邻两个后缀的lcp 每个后缀对答案的贡献就是 与在它之前的后缀的lcp之和 维护一个单调递增的栈,记录栈中元素的lcp之和 即可 ...
分类:
编程语言 时间:
2018-05-01 23:49:07
阅读次数:
247
树状数组求第k大值 思路有一点想ST表 将求第k大变为求第(tot-k+1)小的数,tr[i]统计小于等于i的数的总数 每次不断逼近,若当前[ans,ans+(1<<i)]在范围内,则加上,否则直接到下一次循环 过程中的一个地方要注意(详见代码注释) ...
分类:
其他好文 时间:
2018-04-30 19:54:19
阅读次数:
103
学习链接: http://www.icourse163.org/learn/ZJU-200001?tid=1002316004#/learn/content?type=detail&id=1003086473&cid=1003636045 指针的应用场景 1.交换两个变量 2.函数返回多个值,某些值 ...
分类:
其他好文 时间:
2018-04-27 22:59:05
阅读次数:
216
题目:http://poj.org/problem?id=3417 根据一条边被几个环覆盖来判断能不能删、有几种情况等; 用树上差分,终点 s++,LCA s-=2,统计时计算子树s值的和即可; 用ST表做LCA,不知为何WA了,于是改成了tarjan,过程中求答案; 注意非树边加边时判掉x=y的情 ...
分类:
Web程序 时间:
2018-04-24 20:15:57
阅读次数:
220
【题解】 用线段树维护区间最大值(因为没有修改,St表也可以),然后由于x,y可能是降雨量未知的年份,需要进行分类讨论。 1 #include<cstdio> 2 #include<algorithm> 3 #define rg register 4 #define N 50010 5 #defin ...
分类:
其他好文 时间:
2018-04-22 12:48:47
阅读次数:
185