
与树相关的算法
文章平均质量分 70
风中的微尘
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
最近公共祖先——解题报告
题目链接:http://132.232.5.128:666/submission/6690题目大意:给定一棵 n个结点的有根树,结点编号为 1∼n,其中根节点为1号结点。每个结点都对应着一种颜色(黑/白)和一个固定的权值,初始时所有结点的颜色都为白色。现在你需要实现以下两种操作:•Modify v:将结点 v的颜色修改为黑色;•Query v:找到一个黑色结点u,使得结点u和v的最近公共祖先......原创 2018-10-21 11:47:55 · 705 阅读 · 0 评论 -
P2590 [ZJOI2008]树的统计——解题报告
题目的意思非常简单明了,很明显是一道类似于线段树的题目。但是这个时候我们遇到的麻烦就是,线段树一般是在一段连续区间上进行的,而本题的数据在一棵树上,这对我们使用线段树带来了麻烦。因为题目每一次修改都是在某一条路径上进行的,所以这提醒我们可以将树上某一条链上看作连续的一段数据,这为我们使用线段树创造了条件。但同时,如果选择一条链为连续数据,那么就意味着剩下的点将不是连续的数据,所以如何选择这条链成为了关键问题。为了降低时间复杂度,我们应当选择子节点最多的点来构成这条链,即树链剖分算法。所以我们可以使用原创 2021-03-01 11:33:05 · 214 阅读 · 0 评论 -
Huffman树——用法解析
Huffman树是一种树结构,它的出现是为了解决根据字符出现频率对字符进行“不等长编码”的问题,提高编码效率。“不等长编码”需要满足任何一个字符的编码不能是另外一个字符编码的前缀,否则将产生二义性。为了使最终的编码长度最短,所以出现了Huffman树。...原创 2020-11-01 11:28:25 · 668 阅读 · 0 评论 -
P2168 [NOI2015] 荷马史诗——解题报告
题目链接:https://www.luogu.com.cn/problem/P2168题目大意:存在从1 ~ n的n个数,给定每个数出现的次数times[i],现在想用一个k进制数来替换数字i,希望最后得到的字符串s的长度最小。求出s的最小长度以及1 ~ n中在k进制下最长的数的长度是多少。题目分析:1.看完题目我们就应该明白,应该让使用次数越多的数的长度越短,这样才能达到使k进制下s最短的目的。2.很明显,当我们把times[i]当作权值w[i],把k进制数表示数字i的结果表示为字典树,每个数被替原创 2020-10-22 15:34:19 · 704 阅读 · 0 评论 -
LCA树链剖分算法——算法解析
前段时间为了一道LCA的题目伤透了脑筋,一直都只过了8组数据,另外两组数组总是超时。因为题目的特性,在这里用tarjan离线的方法求LCA并不是个明智的选择反而会使问题变得更加复杂。于是我就在网上自学了一下树链剖分的LCA求法,速度飙升,快的不行,完全不是倍增这种暴力算法能比的。在这里介绍一下树链剖分的做法:基本思想:对于每个结点,选取它的儿子之中以这个儿子为根的子树size最大的那一个,将.........原创 2018-06-04 22:48:30 · 1087 阅读 · 0 评论 -
暗之连锁——解题报告
题目链接:http://172.18.70.217/problem/20。 题目大意:删掉两条边,一条必要边,一条附加边。必要边能构成一棵树。求有多少种方案可以使这个图不联通。必要边N条,附加边M条。 首先我们知道,暴力枚举两条边,再判断是否联通,复杂度为O(n^2 * m).枚举一条边后求图中桥的个数,复杂度为O(n * m)。所以我们需要更快的算法。 通过分析题意我们知道,其实对于一个树...原创 2018-08-13 20:16:33 · 695 阅读 · 0 评论 -
Graph——解题报告
题目链接:http://132.232.5.128:666/problem/125题目大意:给定一张n个点m条边的无向图,每条边连接两个顶点,保证无重边自环,不保证连通。你想在这张图上进行若干次旅游,每次旅游可以任选一个点x作为起点,再走到一个与x直接有边相连的点y,再走到一个与y直接有边相连的点z并结束本次旅游作为一个旅游爱好者,你不希望经过任意一条边超过一次,注意一条边不能即正向走一次......原创 2018-10-21 22:30:18 · 356 阅读 · 0 评论 -
test——解题报告
题目链接:http://172.25.37.251/problem/142题目大意:有一棵n个节点的树, 初始时根节点为1。现在要支持如下操作:1.将某节点设置为根;2.改变某节点权值;3.询问以某节点x为根的子树内节点权值之和;4.询问以某两点为端点的链上的节点权值之和。题目分析:1.先按照根为1来考虑所有情况。2.然后分析操作1对操作3,4的影响。我们可以发现,对于操作3来说,......原创 2018-10-29 22:20:31 · 234 阅读 · 0 评论