
图论
文章平均质量分 69
学习图论,具体分析代码,进行进一步的讲解
Peter Pan was right
我是一个五年级小学生,热爱c++、吃零食、数学竞赛,希望大家能够点个赞、关个注
展开
-
Peter算法小课堂—树链剖分(1)
重儿子:子树节点最多的儿子称之为“重儿子”。若有两个儿子子树大小相同,约定选取编号较小的儿子。如图,请你写出1、3、4的重儿子由上面的定义,我们知道1、3、4的重儿子分别为3、2、5我们用一个数组son[]存u的重儿子编号,按照上图,我们可以列出这张表重边:每个节点与他的重儿子之间的连边为重边。那么,我们就把这棵树划为了这样子重链:将相邻的重边连接起来,就成了一条重链。就变成了这样子那么,我们用一个数组top[]来存u所在重链的链头(最高点)。由上图,可以写出top[]原创 2024-05-17 21:08:40 · 557 阅读 · 7 评论 -
Peter算法小课堂—最大边最短路
这一片文章把整个图论的知识都用上了,基础芝士如下二话不说,题呢?原创 2024-03-17 18:33:01 · 635 阅读 · 10 评论 -
Peter算法小课堂—二叉堆(优先队列)
/用数组模拟堆。原创 2024-01-28 19:47:49 · 547 阅读 · 11 评论 -
Peter算法小课堂—拓扑排序与最小生成树
讲拓扑排序前,我们要先了解什么是DAG树。所谓DAG树,就是指“有向无环图”。请判断下列图是否是DAG图第一幅图,它不是DAG图,因为它形成了一个环。第二幅图,它也不是DAG图,因为它没有方向。第三幅图才叫真正的DAG图(DAG图不一定联通)。那什么叫DAG图的拓扑排序呢?排序大家都知道。拓扑排序指,按照一定次序(箭头方向)来遍历这幅图。我们看道题吧。原创 2024-01-20 14:12:32 · 639 阅读 · 10 评论 -
Peter算法小课堂—并查集
最近你发现自己和古代一个皇帝长得很像:都有两个鼻子一个眼睛,你想知道这皇帝是不是你的远方亲戚,你是不是皇亲国戚。目前你能掌握的信息有m条,关于n个人:第i条信息包含两个人的编号ai,bi,表示ai和bi是亲戚。你的编号是0,皇帝的编号是1,最大编号为n-1,请问能否通过信息推理出你和皇帝是不是亲戚?可以是可以,但是……其实,我们用root()函数表示一个节点的祖宗,判断root(7)==root(8)就行了。哈哈,我们将无向边化作有向边即可,什么意思呢,就是呢,这个,啊这,嗯,差不多。回到题目,我们发现,原创 2024-01-17 20:19:36 · 667 阅读 · 7 评论 -
Peter算法小课堂—树上建模
题目描述:传说有一个大家族里共n名男性成员,编号1到n。其中共有n-1条父子关系。现在他们要挑选若干人组成家族护卫队抵抗外族入侵。i号成员的战斗力为z[i], 大家当然希望挑选最强护卫队。但是为了防止“父子矛盾”的魔咒应验,大家决定不会让父子两人同时入选。请问护卫队选出的队员总战斗力最大是多少?这题简称“树上最优独立集”。我们知道把一个树拉直后就会成为一条树链。那么思考一下如何DP,如何定义状态。那状态转移方程呢?具体的话还是dfs啊。原创 2024-01-12 17:57:44 · 662 阅读 · 0 评论 -
Peter算法小课堂—树的应用
开篇先给大家讲个东西,叫vector,有老师称之为“向量”,当然与数学中的向量不一样啊,所以我要称之为“长度可变的数组”原创 2024-01-06 21:05:30 · 632 阅读 · 9 评论