随笔分类 - 其它——启发式合并
摘要:给定两棵$n$个点的树,分别是由$n-1$条蓝边和$n-1$条红边组成的树。求$n-1$次操作后,能否把蓝树变成红树。
每次操作是,选择当前树上一条只由蓝边组成的简单路径$u\to v$,删掉路径上的任意一条蓝边,然后在路径上任选两个点,在这两个点之间加一条红边。
$n\leq10^5$。
阅读全文
摘要:有$n$个点,维护$m$次三种操作:加入一条边;删除一条边;询问两点间的连通性。
$n\leq5000,m\leq5\times10^5$。
阅读全文
摘要:BZOJ 3673 BZOJ 3674(加强版) dbzoj 3673 如果每次操作最多只修改一个点的fa[],那么我们可以借助可持久化线段树来O(logn)做到。如果不考虑找fa[]的过程,时空复杂度都是O(logn)。 想要这样就不能加路径压缩,否则要对路径上的点都要改,最好时空复杂度是O(lo
阅读全文
摘要:摘要
阅读全文
摘要:给定一棵有根树,每个点有点权$v_i$。选最多的点,使得对于任意选择的两点$i,j$,若$i$是$j$的祖先,则$v_i>v_j$。
输出最多能选择的点数。选的点不必须连通。
$n\leq 2\times 10^5$。
阅读全文
摘要:题目链接 BZOJ 洛谷 详见这. 求所有点到某个点距离和最短,即求树的重心。考虑如何动态维护。 两棵子树合并后的重心一定在两棵树的重心之间那条链上,所以在合并的时候用启发式合并,每合并一个点检查$sz$大的那棵子树的重心(记为$root$)最大子树的$sz*2$是否$>n$; 若$>n$,则向$f
阅读全文
摘要:[TOC] 2018.3.22 Test 时间: 7:30~11:40 得分: 80+65+20=165 总结 时间分配。。 2个月前写的都忘的差不多了。。 注意: T2合并一棵子树,这棵子树某些点的dep[x]可能会变小,于是fa[x][..]应变为0,但如果在循环里写 `&&(1 特判输出2也要
阅读全文
摘要:"题目链接" $Description$ 给定$d$张无向图,每张图都有$n$个点。一开始,在任何一张图中都没有任何边。 接下来有$m$次操作,每次操作会给出$a,b,k$,意为在第$k$张图中的点$a$和点$b$之间添加一条无向边。 你需要在每次操作之后输出有序数对$(a,b)$的个数,满足$1\
阅读全文
摘要:"题目链接" 查找排名为k的数用平衡树 合并时用启发式合并,把size小的树上的所有节点插入到size大的树中,每个节点最多需要O(logn)时间 并查集维护连通关系即可 O(nlogn insert time) 据(主席)说按顺序插入能做到均摊O(1),中序遍历即可有序插入 1.并查集与平衡树是独
阅读全文

浙公网安备 33010602011771号