并查集
文章平均质量分 54
kkkkahlua
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
POJ 2985 The k-th Largest Group 第k大数 Treap / 树状数组 + 并查集
题目链接题意有 nn 只猫,mm 次操作(n,m≤2e5n,m\leq 2e5): 0 i j0\ i\ j:将第 ii 只猫所在组与第 jj 只猫所在组合并; 1 k1\ k:询问第 kk 大的组中有多少只猫。法一:Treap参考资料董的博客 数据结构之Treap clj的treap ——wbysr POJ 2985 Treap平衡树(求第k大的元素) ——潇洒走一回LW注意点原创 2017-09-03 23:13:12 · 320 阅读 · 0 评论 -
BZOJ 3211 花神游历各国 线段树 / 树状数组+并查集
题目链接题意两种操作 1. 对一段区间开方 2. 询问区间和思路这道题最关键的地方就是注意到 开方 操作进行几次后数字就变成了 11(或者有的一开始就为 00),之后的操作都是没有意义的了线段树用一个 flagflag 标记这段区间是否全部 ≤1\leq 1,如果是的话就没有必要继续往下修改了。Code#include <bits/stdc++.h> #define maxn 100010 #d原创 2017-08-20 16:39:39 · 481 阅读 · 0 评论 -
BZOJ 4551 树 dfs序+线段树 / 并查集
题目链接题意给定一颗有根树(根为1),有以下两种操作: 1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记,其他结点均无标记,而且对于某个结点,可以打多次标记); 2. 询问操作:询问某个结点最近的一个打了标记的祖先(这个结点本身也算自己的祖先)。法一:dfs序+线段树分析类似于区间修改,单点查询,因为给某个结点打上标记会对它的整棵子树产生影响。 修改的注意点是只有当前修改的情况优原创 2017-08-27 09:18:10 · 352 阅读 · 0 评论 -
BZOJ 2733 [HNOI2012]永无乡 Treap + 并查集
题目链接题意给定一个图,每个点上有权值。两种操作,连结两个点;问与某个点连通的所有点中权值为第 kk 小的点的编号。思路HDU 3726 Graph and Queries 离线处理 treap + 并查集 的简易版,直接正着做,也没有修改操作Code#include <bits/stdc++.h> #define maxn 100010 int fa[maxn], sz[maxn], val[ma原创 2017-09-04 17:07:02 · 263 阅读 · 0 评论 -
HDU 3726 Graph and Queries 离线处理 treap + 并查集
题目链接题意给定一个图,每个点上有权值。三种操作: 1. 删去某条边; 2. 修改某个点的权值; 3. 询问与某个点连通的所有点中权值第 kk 大的值; 最后输出所有询问的平均值。思路因为是离线操作,所以考虑 倒着处理,先删去所有要删的边,倒着处理的时候再加回去,用并查集维护。 每一个集合都是一个 TreapTreap,合并的时候把 sizesize 小的树里面的点一个个拆出来往 size原创 2017-09-04 16:29:28 · 404 阅读 · 0 评论
分享