ST表的功能很简单 它是解决RMQ问题(区间最值问题)的一种强有力的工具 它可以做到O(nlogn)预处理,O(1)查询最值 ST表是利用的是倍增的思想 拿最大值来说 我们用Max[i][j]表示,从i位置开始的2j个数中的最大值,例如Max[i][1]表示的是ii位置和i+1位置中两个数的最大值 ...
分类:
其他好文 时间:
2020-12-14 13:48:47
阅读次数:
3
dpdp+树状数组O(n lg n)O(n lg n) 注意到我们在状态转移的时候要枚举f[j]f[j]的最大值来转移,我们可以考虑使用数据结构来维护从而优化一下,只要是支持单点修改和区间最值查询的数据结构都可以这么做,分块(O(nn??√))(O(nn))和树状数组(O(n lg n))(O(n ...
分类:
其他好文 时间:
2020-12-07 12:29:58
阅读次数:
6
链接 显然是用map映射一下,然后用线段树查询区间最值,如果给出的两年中有一年未知,二分找到它附近的位置(如果是x未知找第一个大于x的位置,如果是y未知找最大的小于y的位置) 然后再加亿点点细节: 我们就可以用这几个量来判断。 rain[i]:i位置的降雨量 year[i]:i位置的年份 x,y:题 ...
分类:
其他好文 时间:
2020-11-04 18:39:08
阅读次数:
16
数据很小,n = 20,这个应该可以直接搜索吧,我没试,我用的是折半搜索+二分+线段树维护区间最值,折半搜索就是先搜前10个,然后搜后10个,搜前10个的时候把每一个结果用一个pair<花费,权值>保存下来,然后按照花费排序,在第二次搜索的时候对于当前ww , vv需要的是一个前面搜索满足条件v<= ...
分类:
其他好文 时间:
2020-10-07 21:09:45
阅读次数:
28
滑动窗口 Problem:https://ac.nowcoder.com/acm/problem/50528 题解: 单调队列裸题。 单调队列维护区间最值,对于单调队列有两种操作: 插入,新元素从队尾插入后会破坏队列中单调性则删除队尾元素,知道找到插入后不会破坏单调性的位置为止,再将其插入队列。 获 ...
分类:
其他好文 时间:
2020-07-26 19:38:38
阅读次数:
70
维护数列,支持区间 min 操作,询问区间 max,询问区间和。 ...
分类:
其他好文 时间:
2020-07-01 09:26:51
阅读次数:
39
地址:http://acm.hdu.edu.cn/showproblem.php?pid=1754 解析:先说update操作。c[]表示所管辖的区间范围里的最大值。 void update(int id,int x) { while(id<=n) { c[id]=x; for(int i=1;i< ...
分类:
编程语言 时间:
2020-05-12 18:43:37
阅读次数:
55
2020-04-25 22:57:32 439. 线段树的构造 II 线段树是一棵二叉树,他的每个节点包含了两个额外的属性start和end用于表示该节点所代表的区间。start和end都是整数,并按照如下的方式赋值: 根节点的 start 和 end 由 build 方法所给出。 对于节点 A 的 ...
分类:
其他好文 时间:
2020-04-25 23:53:43
阅读次数:
116
题面 今天是小Z的生日,同学们为他带来了一块蛋糕。这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值。 小Z作为寿星,自然希望吃到的第一块蛋糕的幸运值总和最大,但小Z最多又只能吃M小块(M≤N)的蛋糕。 吃东西自然就不想思考了,于是小Z把这个任务扔给了学OI的你,请你帮他 ...
分类:
其他好文 时间:
2020-03-14 10:55:20
阅读次数:
48
ST表算法入门详解 关于ST表,有很多文章,这里本蒟蒻也来发一波~~ 希望能为您提供帮助~~ 1.ST表的介绍 ST表算法全称Sparse-Table算法,是由Tarjan提出的一种解决RMQ问题(区间最值)的强力算法。离线预处理时间复杂度 θ(nlogn),在线查询时间 θ(1),可以说是一种非常 ...
分类:
编程语言 时间:
2020-02-25 12:57:11
阅读次数:
101