"嘟嘟嘟" 如果不是森林,很自然想到树上主席树。 但现在他是个森林,那就lct+主席树? 不,怎么会那么毒瘤。 只要启发式合并就好啦。 不用垃圾回收(主席树启发式合并垃圾回收似乎很麻烦)。需要注意的是,一定要处理好较小树节点的新的元素,包括深度,父亲……最重要的是求lca的倍增数组,一定要都清空,因 ...
分类:
其他好文 时间:
2019-04-02 21:22:51
阅读次数:
155
传送门 看到森林有合并首先会想到 $LCT$ ,然后发现链上第 $K$ 小不可维护 感觉 $LCT$ 只维护合并也有点大材小用了,考虑合并时直接启发式合并就可以不用 $LCT$ 然后求第 $K$ 小显然考虑主席树 对每个节点维护一个主席树,维护它到树根这的一段区间,那么当前节点的线段树可以直接借用父 ...
分类:
其他好文 时间:
2019-03-27 21:35:25
阅读次数:
153
小a的模拟军团 问题描述: 9102年伊始,小a觉得山羊模拟器,乞丐模拟器之类的都太低级了,所以想自己建立一个征战天下的军团模拟器。 军团模拟器是在一个城市数为N的国家中运行的,每个城市都会通过一些道路和其他所有城市相连,道路总数为N?1。 开始时,每个城市中都会有一个军队,每个军队有着自己的编号。 ...
分类:
其他好文 时间:
2019-03-13 23:02:52
阅读次数:
374
简介 对于一颗静态树,O(nlogn)时间内处理子树的统计问题。是一种优雅的暴力。 算法思想 很显然,朴素做法下,对于每颗子树对其进行统计的时间复杂度是平方级别的。考虑对树进行一个重链剖分。虽然都基于重链剖分,但不同于树剖,我们维护的不是树链。 对于每个节点,我们先处理其轻儿子所在子树,轻子树在处理 ...
分类:
其他好文 时间:
2019-03-03 09:19:21
阅读次数:
214
https://vjudge.net/problem/HYSBZ-2733 给一些带权点,有些点是互相连通的, 然后给出2种操作,在两点间加一条边,或者询问一个点所在的连通块内的第k小值的编号 并查集辅助+splay的启发式合并就行 由于结构简单,动态开点线段树合并也可以做 我写的是splay,由于 ...
分类:
其他好文 时间:
2019-02-10 10:45:02
阅读次数:
171
传送门 分析 首先这个题有两个坑点 一是一个点不管可以由父亲领导,任何祖宗均可领导 而是根节点的花费要算在总费用中且它自己也算在总节点数量中 于是我们考虑如何求答案 首先我们知道对于一个点如果在一个子树中就没有选则在更大的一棵子树中一定不会选 因为一棵大的子树有更多选择,结果肯定不会比它的子树劣 于 ...
小细节磕磕碰碰浪费了半个多小时的时间 Description Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号。保证1≤testcase≤20。 第二行包含三个整数N,M,T,分别表示节点数、初始边数、操作数。第三行包含N个非负整数表示 N个节点上的权值。 接下来 M行 ...
分类:
其他好文 时间:
2019-01-31 15:23:17
阅读次数:
157
"P4197 Peaks" 并不会克鲁斯卡尔重构树,于是就写了离线算法。 使用了最小生成树,启发式合并treap 在最小生成树,克鲁斯卡尔算法 时 ,将询问一块处理。便可以保证询问时边的要求。然后利用平衡树,加速计算。 cpp // luogu judger enable o2 include in ...
分类:
其他好文 时间:
2019-01-29 01:15:51
阅读次数:
206
ZROI week6 T1 用一个类似背包的东西记录答案。 T2 好像直接用 操作即可。 T3 瞎搞就完事了 T4 启发式合并,然而变量写错了,就没了。。。 总结 100 + 100 + 100 + 0 = 300 ...
分类:
其他好文 时间:
2019-01-23 10:41:28
阅读次数:
199
E - Dominant Indices CodeForces - 1009F You are given a rooted undirected tree consisting of nn vertices. Vertex 11 is the root. Let's denote a depth ...
分类:
其他好文 时间:
2019-01-21 16:12:18
阅读次数:
221