启发式合并

#启发式合并
##先来分类
一般来说,OI中的名词大概分成这几大类.
思想 : 模拟,贪心,动态规划,模型转换
策略 : 固定策略,随机化策略,启发式策略
算法 : …

显然在合并时使用启发式策略算法,被称之为启发式合并.
##定义
形如在两个对象合并时,参考两个对象(任何类新)的启发式函数,决定谁并入谁的合并,我们称之为启发式合并.
一般地,对象类型是集合,启发式函数为集合的大小,合并方式为小的集合并入大的集合.
##一般模型 - 按秩合并
考虑有n个元素,分别属于不同的集合,现在要将某两个集合合并,进行多次操作,考虑到按题意模拟,有很大概率被卡成 O ( n 2 ) O(n^2) O(n2).所以我们选择按秩合并,即把小的集合并入大的集合,复杂度可以分开每个元素考虑,一个元素从一个集合进入另一个集合的操作占主要复杂度,一个元素从一个集合进入另一个集合仅当另一个集合大于等于当前集合,则可以发现一个元素并入的集合呈指数增长,则一个元素最多被合并 O ( l n n ) O(lnn) O(lnn)次,所以总体而言,复杂度为 O ( n l n n ) O(nlnn) O(nlnn)的.
几大经典应用
并查集按秩合并:加上路径压缩成为并查集的两大优化
优先队列的启发式合并:P3377 【模板】左偏树(可并堆)
从来就不可能码什么可并堆, O ( n l n 2 n ) O(nln^2n) O(nln2n)随便水
平衡树的启发式合并:各种乱搞
##特殊模型
###树上启发式合并(dsu on tree)
怎么说呢,其实就是很简单的优化暴力,类似莫队的玩法(其实上面也差不多),但是有着优秀的复杂度O(nlnn),证明同上这有篇博客就写的很好http://codeforces.com/blog/entry/44351

建议有树剖基础的同学食用.

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值