摘要: Simulate Anneal模拟退火算法,是一种用于得到最优解的随机化算法。 如果可以打一手漂亮的随机化搜索,也许当你面对一筹莫展的神仙题时就有一把趁手的兵器了。 这篇题解将教你什么?SA的基本思路,什么时候能用SA。 标题是浅谈,所以本篇博客参杂了些许个人简介,若有疑问或异议,欢迎提出指正。 我 阅读全文
posted @ 2019-11-01 22:14 LightHouseOfficial 阅读(468) 评论(0) 推荐(1) 编辑
摘要: 今天介绍一个神仙算法:Dsu On Tree[ 树上启发式合并 ] 这个算法用于离线处理询问子树信息,而且很好写。 但是在你没有理解它之前,这是个很鬼畜的算法。 理解后你才能真心感到它的美妙之处。 关键是它是有着媲美线段树合并的时间复杂度的“暴力”算法。 这里说一件事,我学这个东西时找了很多篇博客, 阅读全文
posted @ 2019-11-01 19:26 LightHouseOfficial 阅读(236) 评论(0) 推荐(1) 编辑
摘要: 这一篇博客将教你什么? 如何用LCT打延迟标记,LCT和线段树延迟标记间的关系,为什么延迟标记要这样打。 ——正片开始—— 学习这一篇博客前,确保你会以下知识: Link-Cut-Tree,普通线段树 当然,不会也没有关系,你可以先收藏这篇博客,等你学了以后再来看。 最好通过了这一道题:【模板】线段 阅读全文
posted @ 2019-10-31 17:31 LightHouseOfficial 阅读(430) 评论(2) 推荐(2) 编辑
摘要: 前面的文章介绍了如何用Tarjan算法计算无向图中的e-DCC和v-DCC以及如何缩点。 本篇文章资料参考:李煜东《算法竞赛进阶指南》 这一篇我们讲如何用Tarjan算法求有向图的SCC( 强连通分量 )已经如何缩点。 给定一张有向图,若对于图中任意两个节点x和y, 既有x到y的路径,又有y到x的路 阅读全文
posted @ 2019-10-30 21:17 LightHouseOfficial 阅读(889) 评论(0) 推荐(1) 编辑
摘要: 上一篇讲了如何应用Tarjan算法求出e-DCC和v-DCC。 那么这一篇就是e-DCC和v-DCC的应用之一:缩点。 先讲e-DCC的缩点。 我们把每一个e-DCC都看成一个节点,把所有桥边(x,y)看成连接编号为c[x]和c[y]的两个e-DCC间的边,这样我们就会得到一棵树或者森林(原图不连通 阅读全文
posted @ 2019-10-30 17:07 LightHouseOfficial 阅读(864) 评论(0) 推荐(1) 编辑
摘要: 这篇介绍如何用Tarjan算法求Double Connected Component,即双连通分量。 双联通分量包括点双连通分量v-DCC和边连通分量e-DCC。 若一张无向连通图不存在割点,则称它为“点双连通图”,不存在桥则称为“边双连通图”。 无向图的极大点双连通子图就v-DCC,极大边双连通子 阅读全文
posted @ 2019-10-30 16:36 LightHouseOfficial 阅读(1083) 评论(0) 推荐(0) 编辑
摘要: RobertTarjan真的是一个传说级的大人物。 他发明的LCT,SplayTree这些数据结构真的给我带来了诸多便利,各种动态图论题都可以用LCT解决。 而且,Tarjan并不只发明了LCT,他对计算机科学做出的贡献真的很多。 这一篇我就来以他名字命名的Tarjan算法可以O(n)求出无向图的割 阅读全文
posted @ 2019-10-30 13:08 LightHouseOfficial 阅读(1321) 评论(1) 推荐(0) 编辑
摘要: 这一篇讲线段树优化建图。 发现网上关于线段树优化建图的博客很少而且讲的不是很详细,很多人会看得比较懵。 于是原本这一篇打算讲树链剖分的就改成讲优化建图了。 前置知识:动态开点线段树 看到标题你可能会感觉奇怪,线段树和建图有什么关系? 事实上,线段树优化建图就是利用两棵线段树,减少连边数量,达到降低复 阅读全文
posted @ 2019-10-29 20:00 LightHouseOfficial 阅读(5007) 评论(14) 推荐(28) 编辑
摘要: 这一篇来讲讲线段树合并。 前置知识:动态开点线段树 还是一样先给一道例题:[JOI2012] Building2 题面是日文的,这里给出中文翻译: 有n个城市,它们组成了一棵树。 第i个城市有一座高度为Hi的建筑。 你需要选择一条尽量长路径,设路径中有k个点, 依次分别为i1,i2,⋯ik−1,ik 阅读全文
posted @ 2019-10-29 16:59 LightHouseOfficial 阅读(4611) 评论(1) 推荐(8) 编辑
摘要: 可持久化线段树又名主席树,是“可持久化”的线段树 (废话) 它能干什么呢? 我们来看这样一道题:【模板】可持久化线段树 题目要求我们支持两种操作,修改历史版本和查询历史版本。 我们可以很轻松地想到一个显然的做法:对每个历史版本开一棵线段树并且储存下来。 OK,这就是可持久化线段树了... 吗? 当然 阅读全文
posted @ 2019-10-28 22:33 LightHouseOfficial 阅读(518) 评论(0) 推荐(0) 编辑