启发式合并
Clove_unique
All that you have lost can be won back bit by bit as long as you wish for it.
展开
-
[BZOJ3545][ONTAK2010]Peaks(splay启发式合并)
题目描述传送门题解离线之后排序,然后对于每一个询问,将所有边权比它小的加入。可以把各个连通块搞成一个个splay,连边的时候启发式合并,然后每一个询问在当前点所在的splay里找k大值就可以了。 这题还有主席树的做法,就是通过排序之后将点重新编号,保证在任何时刻和某一个点连通的所有点组成一个连续的区间,然后实际上就是一个静态主席树找区间第k大了。代码#include<algorithm> #inc原创 2016-12-11 18:31:25 · 712 阅读 · 0 评论 -
BC#90 解题报告
A题意给出一堆旗子的坐标,问有多少个行和列没有旗子。 坐标范围10610^6,个数10610^6。题解搞2个bool数组就行了… 排序被卡,ggB题意一个有根树,每个节点上都有若干个石子,每次操作可以将一个节点上的若干个石子(>0)(>0)移动到它的父亲上,当一个人没有任何合法操作时则负,判断当期局面是必胜态还是必败态。题解设根节点的深度为0,将所有深度为奇数的节点的石子数目xor起来,则先手必原创 2016-12-18 17:31:08 · 521 阅读 · 0 评论 -
[BZOJ2733][HNOI2012]永无乡(并查集+splay启发式合并)
题目描述 传送门 题解 比较裸的splay+启发式合并,暴力地将小的拆了插入到大的里面去就可以了。每一个集合可以用并查集来合并。 注意暴力拆的时候要做一个中序遍历,因为如果自顶向下拆的话有些父子关系会打破,这样就无法继续进行了。 代码 #include #include #include using namespace std; const int max_n=1e5+5; int原创 2017-01-06 09:25:10 · 1072 阅读 · 0 评论 -
[BZOJ3123][Sdoi2013]森林(主席树启发式合并)
题目描述传送门题解主席树的启发式合并裸题? 坑点: ①强制在线,但是我刚开始的时候ans里存的并不是答案,而是离散化之后的值,gg。 ②合并的时候lca数组要完全清空。代码#include<algorithm> #include<iostream> #include<cstring> #include<cstdio> using namespace std; #define N 1000原创 2016-12-15 16:42:55 · 772 阅读 · 0 评论 -
[BZOJ1483][HNOI2009]梦幻布丁(链表+启发式合并)
Feeling too tired of the relationship even if it.原创 2016-09-25 08:29:56 · 933 阅读 · 0 评论