码迷,mamicode.com
首页 >  
搜索关键字:启发式合并    ( 251个结果
bzoj 2733 Splay 启发式合并,名次树
题意:给定一个带点权的无向图,有两种操作: 1、将两个连通分量合并。 2、查询某个连通分量里的第K大点。题解:用并查集维护连通关系,一开始建立n棵splay树,然后不断合并,查询。处理技巧: 1、每个顶点u所在的Splay就是T[find(u)]。 2、每个顶点在树中对应的节点编号就是该顶点...
分类:其他好文   时间:2015-02-05 20:24:24    阅读次数:410
启发式合并
启发式合并就是一个简单的思想, 就是每次在合并的时候 都把 小的合并到大的里面。 可以证明这个方法在很多时候都可以把合并次数 为 n 的问题优化到 logn次。应用一) 并查集并查集的按秩合并就是记录一下每个点的size 是多大然后每次 把 size 较小的那个接到较大的上面。 但是好像并不是很常用...
分类:其他好文   时间:2015-01-26 15:05:29    阅读次数:234
【BZOJ】【2002】【HNOI2010】弹飞绵羊
呃这题的Hint写着splay启发式合并……但是蒟蒻不懂T_T只好写个简单的LCT来蒙混过关,就是时间效率上差劲的很……不过能够一次AC心情也是蛮愉悦的~ 1 /************************************************************** 2 ...
分类:其他好文   时间:2015-01-10 12:28:58    阅读次数:254
BZOJ 2754 SCOI2012 喵星球上的点名 fail树+set启发式合并
题目大意:给定n个目标串和m个模式串,问这m个模式串每个在多少个目标串中出现过,以及n个目标串每个以最多多少个模式串为子串 我错了……就算用fail树+set启发式合并也优化不到O(nlog^2n)……这题的数据范围相当无解啊 首先将所有名字和点名的字符串全都插进AC自动机 将每个点上开一个set记录这个点是哪些喵星人的名字的前缀 然后建立fail树 沿着fail树从下到上启发式合并 每...
分类:其他好文   时间:2014-12-09 09:21:35    阅读次数:286
[BZOJ 1483][HNOI 2009]梦幻补丁(有序表启发式合并)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1483分析:先将不同的颜色的出现位置从小到大用几条链表串起来,然后统计一下答案对于每次修改,修改一下答案即可,修改之后需要将两个颜色的链表合并就行了,但感觉似乎会TLE?以下摘录与Hzwe...
分类:其他好文   时间:2014-11-30 00:24:46    阅读次数:284
BZOJ 1483 HNOI 2009 梦幻布丁 链表+启发式合并
题目大意:给出一串颜色,有两种操作,1.询问有多少块颜色。2.将一种颜色改变成另一种颜色。 思路:好像和染色什么的比较像,但是看了题解之后发现完全不是那么回事。 对于每一种颜色维护一个链表,然后在修改颜色的时候,暴力修改一种颜色成为另一种颜色,用启发式合并可以保证复杂度不超过O(nlogn)。但是由于是启发式合并,有可能导致你就改了反了颜色,这个时候记录一个映射,然后把修改错的记录下来...
分类:其他好文   时间:2014-11-28 18:21:36    阅读次数:180
BZOJ 3551 ONTAK2010 Peaks加强版 Kruskal重构树+可持久化线段树
题目大意:同3545 强制在线 3545题解传送门:http://blog.csdn.net/popoqqq/article/details/40660953 强制在线没法排序 启发式合并也就用不了了 Kruskal重构树是个挺好玩的东西 可以拿来处理一些最小生成树的边权最值问题 这里我们Kruskal连边时并不直接连边 而是新建一个节点ext 将两个点所在子树都连到ext的儿子上 比如...
分类:其他好文   时间:2014-11-21 16:21:43    阅读次数:252
并查集路径压缩与启发式合并
〖程序清单〗初始化:fori:=1tondofather[i]:=i;因为每个元素属于单独的一个集合,所以每个元素以自己作为根结点。寻找根结点编号并压缩路径:functiongetfather(v:integer):integer;beginiffather[v]=vthenexit(v);fath...
分类:其他好文   时间:2014-11-04 09:15:44    阅读次数:119
BZOJ 2809 APIO2012 dispatching Treap+启发式合并 / 可并堆
题目大意:给定一棵树,选定一棵子树中的一些点,薪水和不能超过m,求点的数量*子树根节点的领导能力的最大值 考虑对于每个节点,我们维护一种数据结构,在其中贪心寻找薪金小的雇佣。 每个节点暴力重建一定不行,我们考虑可并数据结构,每个节点将子节点的信息直接合并即可 可以用启发式合并的Treap,也可以用可并堆 今天特意去学了这玩应0.0 先写了左偏树 然后又写了下随机堆…… 后者速度上更快一些 ...
分类:Windows程序   时间:2014-10-24 14:45:43    阅读次数:295
BZOJ 1483 HNOI2009 梦幻布丁 链表+启发式合并
题目大意:给定n个布丁,每个布丁有一个颜色,多次将某种颜色的所有布丁变为另一种颜色,多次询问颜色段数 数据范围:n 链表的启发式合并0.0 一直没写明白 其实就是开个链表记录每种颜色的位置,合并时撸一遍短的链看看两边是不是长链的颜色就行 不过交换比较麻烦0.0 要开个数组记录每个数字代表的真实颜色 交换时把数组的这两个位置也交换下就可以了 注意用过的垃圾不要留在原位 size合并掉就清零 ...
分类:其他好文   时间:2014-10-24 14:40:30    阅读次数:146
251条   上一页 1 ... 22 23 24 25 26 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!