ST算法
文章平均质量分 65
ZigZagK
一个蒟蒻。
展开
-
LCA-ST算法&Tarjan_LCA
定义树中两个节点x,y的最近公共祖先(Lowest Common Ancestors,简称LCA)指的是既是x祖先,又是y祖先且距离x和y最近的节点。ST算法(在线)我们有一个求x和y的LCA的初始想法:就是先让x和y中dep较大的节点与dep较小的节点处在同一深度,然后同时向上走,直到相遇,此时相遇的节点即为LCA: 复杂度为O(n∗Q)O(n*Q),并不是很好,我们需要优化。 初始想法很原创 2017-07-23 12:57:54 · 833 阅读 · 1 评论 -
【贪心+ST算法+堆】BZOJ2006(NOI2010)[超级钢琴]题解
题目概述给出一个序列,选出 kk 个长度在 [L,R][L,R] 的子段(不可选重),求 kk 个子段的和的最大值。解题报告如果我们把所有长度在 [L,R][L,R] 的子段都处理出来并从大到小排序,那么根据贪心,肯定选前 kk 个最优秀。但我们不可能把所有满足要求的子段都处理出来:太多了。需要注意到的是, kk 并不是很大,所以我们要想办法每次都选最大的满足要求的子段, 选 kk 次累加起来就是答原创 2017-08-08 18:32:46 · 1179 阅读 · 3 评论 -
【贪心+ST算法+堆】BZOJ4458[GTY的OJ]题解
题目概述有 nn 个目录,每个目录有一个父亲目录和靠谱值,一个题目由若干个目录构成,其中任何一个目录都是别的目录的子孙和祖先,一个题目的靠谱值是所有目录靠谱值的和。需要选 kk 个目录数量范围在 [L,R][L,R] 且不相同的题目,使得靠谱值最大。解题报告和BZOJ2006套路是一样的,只不过做到了树上。所以我们使用树上RMQ就行了。示例程序#include<cstdio>#include<cm原创 2017-08-10 09:09:01 · 887 阅读 · 0 评论 -
【贪心+ST算法+单调栈】51Nod1288[汽油补给]题解
题目概述有 n+1n+1 个城市, 00 是起点 nn 是终点,开车从 0→1→2⋯→n0\to 1\to 2\cdots\to n ,车每走 11 个单位距离消耗 11 个单位的汽油,油箱的容量是 TT 。给出每个城市到下一个城市的距离 DD ,以及当地的油价 PP ,求走完整个旅途最少的花费。如果无法从起点到达终点输出 −1-1 。解题报告以前做过的贪心题……贪心想法不难,主要是要考虑完整。从原创 2017-10-20 16:30:32 · 576 阅读 · 0 评论