动态区间最值问题(查询、更新) 线段树原理简单,但我看刘书上实现代码比较麻烦,于是试着自己实现了一下。说明如下: 1. 出于简化的目的,总是将线段总长视为2的方幂(如果不足,预先补齐。且这样不会本质上影响复杂度) 2. 建树:由于是完全二叉树,叶子结点的编号是连续的,建树时只要从底向上扫一遍即可。复 ...
分类:
其他好文 时间:
2018-10-03 22:55:13
阅读次数:
153
今天学习了一下st表 其实好几天就一直看 用禚神仙的话来说: st表不支持在线修改 不支持!!!!! 一种利用dp求解区间最值的倍增算法。 定义:f[i][j]表示i到i+2^j-1这段区间的最大值。这里必须是i到i+2的j次方-1 别问为什么 规定!!! 预处理:f[i][0]=a[i]。即i到i ...
分类:
其他好文 时间:
2018-09-22 19:56:08
阅读次数:
361
全网好像就只有劼和manchery写了博客的样子……;正解可能是最大流?但是仔细特判也能过 题目描述 RMQ问题即区间最值问题是一个有趣的问题。 在这个问题中,对于一个长度为 n 的排列,query(l,r) 将返回 al,?,ar 中的最大值。 如对于 {3,1,4,2,5},query(2,4) ...
分类:
其他好文 时间:
2018-09-09 16:50:00
阅读次数:
200
#include const int N=1e6+5; const int Logn=20; int f[N][Logn],a[N],lg[N],n,m; int main(){ cin>>n>>m; rep(i,1,n) cin>>a[i]; lg[0]=-1; rep(i,1,n) fa[i][... ...
分类:
编程语言 时间:
2018-09-08 15:26:20
阅读次数:
124
ST表类似树状数组,线段树这两种算法,是一种用于解决RMQ(Range Minimum/Maximum Query,即区间最值查询)问题的离线算法 与线段树相比,预处理复杂度同为O(nlogn),查询时间上,ST表为O(1),线段树为O(nlogn) st表的主体是一个二维数组st[i][j],表示 ...
分类:
其他好文 时间:
2018-09-08 15:17:48
阅读次数:
218
``` int a[N]; int dpmax[N][20],dpmin[N][20]; void first(int n)//预处理长度为n的数组 { mm(dpmax,0); mm(dpmin,0); rep(i,1,n+1) { dpmax[i][0]=a[i]; } for(int j=1; ...
分类:
其他好文 时间:
2018-09-04 20:51:26
阅读次数:
177
(有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog [TOC] Problem: "Portal传送门" 原题目描述在最下面。 1e5个点,问从(0,0)走到(1e9,1e9)的最大收益。 当你从(u 1,v 1)走到(u,v)时,你可以获得点(u, ...
分类:
其他好文 时间:
2018-08-26 01:24:04
阅读次数:
870
I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 101699 Accepted Submission(s): 38294 Pr ...
分类:
其他好文 时间:
2018-08-14 18:47:46
阅读次数:
178
问题类型:是多次询问一个大区间里子区间的最值问题 dp + 位运算的思想处理 rmax[i][j]表示从i开始到i + 2^j - 1的区间里的最大值dp[i][j] (i,i + 2^j - 1)分为 dp[i][j-1] (i,i + 2^(j-1) - 1)dp[i + 1 << (j-1)) ...
分类:
编程语言 时间:
2018-08-06 21:06:17
阅读次数:
155
Sound静音问题 bzoj-1342 Baltic-2007 题目大意:给定一个n个数的序列,求所有的长度为m的区间,使得区间内最大值减去最小值不超过阈值c。 注释:$1\le n \le 10^6$,$1\le m\le 10^4$。 想法:单调队列裸题。 定长区间最值问题显然可以用单调队列维护 ...
分类:
其他好文 时间:
2018-07-31 11:14:45
阅读次数:
139