博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

随笔分类 -  其它——启发式合并

摘要:给定两棵n个点的树,分别是由n1条蓝边和n1条红边组成的树。求n1次操作后,能否把蓝树变成红树。 每次操作是,选择当前树上一条只由蓝边组成的简单路径uv,删掉路径上的任意一条蓝边,然后在路径上任选两个点,在这两个点之间加一条红边。 n105阅读全文
posted @ 2019-01-08 11:04 SovietPower 阅读(221) 评论(0) 推荐(0) 编辑
摘要:有n个点,维护m次三种操作:加入一条边;删除一条边;询问两点间的连通性。 n5000,m5×105阅读全文
posted @ 2018-08-01 16:22 SovietPower 阅读(670) 评论(0) 推荐(0) 编辑
摘要:BZOJ 3673 BZOJ 3674(加强版) dbzoj 3673 如果每次操作最多只修改一个点的fa[],那么我们可以借助可持久化线段树来O(logn)做到。如果不考虑找fa[]的过程,时空复杂度都是O(logn)。 想要这样就不能加路径压缩,否则要对路径上的点都要改,最好时空复杂度是O(lo 阅读全文
posted @ 2018-07-23 20:18 SovietPower 阅读(240) 评论(0) 推荐(0) 编辑
摘要:摘要 阅读全文
posted @ 2018-07-15 00:58 SovietPower 阅读(256) 评论(0) 推荐(0) 编辑
摘要:给定一棵有根树,每个点有点权vi。选最多的点,使得对于任意选择的两点i,j,若ij的祖先,则vi>vj。 输出最多能选择的点数。选的点不必须连通。 n2×105阅读全文
posted @ 2018-07-13 08:51 SovietPower 阅读(276) 评论(0) 推荐(0) 编辑
摘要:题目链接 BZOJ 洛谷 详见这. 求所有点到某个点距离和最短,即求树的重心。考虑如何动态维护。 两棵子树合并后的重心一定在两棵树的重心之间那条链上,所以在合并的时候用启发式合并,每合并一个点检查sz大的那棵子树的重心(记为root)最大子树的sz2是否>n; 若>n,则向$f 阅读全文
posted @ 2018-03-23 21:15 SovietPower 阅读(375) 评论(0) 推荐(0) 编辑
摘要:[TOC] 2018.3.22 Test 时间: 7:30~11:40 得分: 80+65+20=165 总结 时间分配。。 2个月前写的都忘的差不多了。。 注意: T2合并一棵子树,这棵子树某些点的dep[x]可能会变小,于是fa[x][..]应变为0,但如果在循环里写 `&&(1 特判输出2也要 阅读全文
posted @ 2018-03-22 15:41 SovietPower 阅读(225) 评论(0) 推荐(0) 编辑
摘要:"题目链接" Description 给定d张无向图,每张图都有n个点。一开始,在任何一张图中都没有任何边。 接下来有m次操作,每次操作会给出a,b,k,意为在第k张图中的点a和点b之间添加一条无向边。 你需要在每次操作之后输出有序数对(a,b)的个数,满足$1\ 阅读全文
posted @ 2018-03-04 10:43 SovietPower 阅读(666) 评论(3) 推荐(1) 编辑
摘要:"题目链接" 查找排名为k的数用平衡树 合并时用启发式合并,把size小的树上的所有节点插入到size大的树中,每个节点最多需要O(logn)时间 并查集维护连通关系即可 O(nlogn insert time) 据(主席)说按顺序插入能做到均摊O(1),中序遍历即可有序插入 1.并查集与平衡树是独 阅读全文
posted @ 2018-02-09 13:02 SovietPower 阅读(206) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示