
启发式合并
文章平均质量分 72
PoPoQQQ
这个作者很懒,什么都没留下…
展开
-
BZOJ 2733 HNOI2012 永无乡 Treap+启发式合并
题目大意:给定一个无向图以及n个点的排名,多次连接一条边,多次求某个点所在联通块中排名第k小的点的编号初始对于每个点建立一棵只有一个节点的Treap,然后每次连接两个点,利用并查集找到两个点的根节点,将size较小的Treap暴力拆解插入大的中,然后将小的并查集合并到大的中今天下午各种脑残,一个小小的Treap改了不下10遍0.0 快去喝脑白金0.0#include#include原创 2014-10-23 17:16:05 · 2847 阅读 · 0 评论 -
BZOJ 1483 HNOI2009 梦幻布丁 链表+启发式合并
题目大意:给定n个布丁,每个布丁有一个颜色,多次将某种颜色的所有布丁变为另一种颜色,多次询问颜色段数数据范围:n链表的启发式合并0.0 一直没写明白 其实就是开个链表记录每种颜色的位置,合并时撸一遍短的链看看两边是不是长链的颜色就行不过交换比较麻烦0.0 要开个数组记录每个数字代表的真实颜色 交换时把数组的这两个位置也交换下就可以了注意用过的垃圾不要留在原位 size合并掉就清零原创 2014-10-24 14:10:02 · 1952 阅读 · 0 评论 -
BZOJ 2809 APIO2012 dispatching Treap+启发式合并 / 可并堆
题目大意:给定一棵树,选定一棵子树中的一些点,薪水和不能超过m,求点的数量*子树根节点的领导能力的最大值考虑对于每个节点,我们维护一种数据结构,在其中贪心寻找薪金小的雇佣。每个节点暴力重建一定不行,我们考虑可并数据结构,每个节点将子节点的信息直接合并即可可以用启发式合并的Treap,也可以用可并堆今天特意去学了这玩应0.0 先写了左偏树 然后又写了下随机堆…… 后者速度上更快一些原创 2014-10-24 12:05:30 · 1618 阅读 · 0 评论 -
BZOJ 3545 ONTAK2010 Peaks Treap启发式合并
题目大意:给定一个无向图,每个点和每条边都有权值,多次询问从点v开始只能经过边权小于等于x的点中权值第k大此题不强制在线,直接把边和询问都按照边权从小到大排序,初始每个节点是一个Treap的根节点对于每个询问把小于等于这个询问的权值的边两侧的Treap进行启发式合并 然后求第k大即可不知道是谁出了个强制在线版……回头研究一下#include#include#include#i原创 2014-10-31 21:06:28 · 2542 阅读 · 0 评论 -
BZOJ 3123 SDOI2013 森林 可持久化线段树+倍增LCA+启发式合并
题目大意:给定一棵森林,每个点有权值,提供两种操作:1.查询两点间路径上第k小的权值2.将两个点之间连一条边 保证连接后仍是一座森林可持久化线段树部分同Count On A Tree 只是这道题加了个连接操作对于连接操作我们要用到启发式合并 就是把小的那棵树暴力重建 很简单的一个操作但是可以证明是均摊O(nlogn)的大小我用了并查集 其实记录根就可以了此外本题的多组数据是原创 2014-10-20 11:38:16 · 2231 阅读 · 0 评论 -
BZOJ 2754 SCOI2012 喵星球上的点名 fail树+set启发式合并
题目大意:给定n个目标串和m个模式串,问这m个模式串每个在多少个目标串中出现过,以及n个目标串每个以最多多少个模式串为子串我错了……就算用fail树+set启发式合并也优化不到O(nlog^2n)……这题的数据范围相当无解啊首先将所有名字和点名的字符串全都插进AC自动机将每个点上开一个set记录这个点是哪些喵星人的名字的前缀然后建立fail树 沿着fail树从下到上启发式合并每原创 2014-12-09 00:35:48 · 2102 阅读 · 0 评论