摘要:
对于一个有桥的连通图,加边变成边双连通图 1.求出所有的桥,然后删除这些桥边。剩下的每个连通块都是一个双连通子图。 2.把每个双连通子图收缩为一个顶点。 3.加回桥边,统计度为1的节点的个数(叶节点的个数),记为 leaf 则:至少在树上加 (leaf+1)/... 阅读全文
posted @ 2022-09-20 22:59
老程序员111
阅读(178)
评论(0)
推荐(0)
摘要:
【概念】 1.双连通分量:对于一个无向图,其边/点连通度大于1,满足任意两点之间,能通过两条或两条以上没有任何重复边的路到达的图,即删掉任意边/点后,图仍是连通的 2.分类: 1)点双连通图:点连通度大于 1 的图 2)边双连通图:边连通度大于... 阅读全文
posted @ 2022-09-20 22:59
老程序员111
阅读(275)
评论(0)
推荐(0)
摘要:
【概念】 1.割点 1)割点:删除某点后,整个图变为不连通的两个部分的点 2)割点集合:在一个无向图中删除该集合中的所有点,能使原图变成互不相连的连通块的点的集合 3)点连通度:最小割点集合点数 如上图,若去掉 0,则图被分成 12 和 34 两个连通分量;... 阅读全文
posted @ 2022-09-20 22:59
老程序员111
阅读(522)
评论(0)
推荐(0)
摘要:
缩点常应用于给一个有向图,求在图中最少要加多少条边能使得该图变成一个强连通图 首先求出该图的各个强连通分量,然后把每个强连通分量看出一个点(即缩点),最后得到了一个有向无环图(DAG) 对于一个DAG,需要添加 max(a,b) 条边才能使其强连通 其中 a ... 阅读全文
posted @ 2022-09-20 22:59
老程序员111
阅读(85)
评论(0)
推荐(0)
摘要:
【概述】 Tarjan 算法是基于对图深度优先搜索的算法,每个强连通分量为搜索树中的一棵子树。 搜索时,把当前搜索树中未处理的节点加入一个堆栈,回溯时可以判断栈顶到栈中的节点是否为一个强连通分量。 【基本思路】 定义 DFN(u) 为节点 u 搜索的次序编号(... 阅读全文
posted @ 2022-09-20 22:59
老程序员111
阅读(286)
评论(0)
推荐(0)
摘要:
【概述】 Kosaraju 算法是最容易理解,最通用的求强连通分量的算法,其关键的部分是同时应用了原图 G 和反图 GT 。 【基本思想】 1.对原图 G 进行 DFS 搜索,计算出各顶点完成搜索的时间 f 2.计算图的反图 GT,对反图也进行 DFS 搜索,... 阅读全文
posted @ 2022-09-20 22:59
老程序员111
阅读(210)
评论(0)
推荐(0)
摘要:
当需要判断图是否为连通图时,可以使用并查集来进行连通分量的统计,若连通分量大于 1,则说明图中存在多个连通分量,图不为连通图。 int n,m;int father[N];int Find(int x){ if(father[x]==-1) ... 阅读全文
posted @ 2022-09-20 22:59
老程序员111
阅读(149)
评论(0)
推荐(0)
摘要:
【题目描述】 精通程序设计的 Applese 叕写了一个游戏。 在这个游戏中,有一个 n 行 m 列的方阵。现在它要为这个方阵涂上黑白两种颜色。规定左右相邻两格的颜色不能相同。请你帮它统计一下有多少种涂色的方法。由于答案很大,你需要将答案对 10^9+... 阅读全文
posted @ 2022-09-20 22:59
老程序员111
阅读(39)
评论(0)
推荐(0)
摘要:
【题目描述】 精通程序设计的 Applese 又写了一个游戏。 在这个游戏中,它位于一个 n 行 m 列的方阵中的左上角(坐标为(0, 0),行的序号为 0∼n−1,列的序号为 0∼m−1)。 现在它想不重复地走过所有格子(除了起点),最后回到左上角... 阅读全文
posted @ 2022-09-20 22:59
老程序员111
阅读(27)
评论(0)
推荐(0)
摘要:
【题目描述】 处女座为了有更充足的资金和小姐姐一起玩耍,于是就放"高利贷"给小姐姐,一般小姐姐一周就会还钱,而处女座只要10%的利率,这样算下来,如果可以利滚利的话,1元钱经过1年(360天)可以变成51.43元呢,想起来就非常美滋滋哦! 不过总是借钱... 阅读全文
posted @ 2022-09-20 22:59
老程序员111
阅读(79)
评论(0)
推荐(0)

浙公网安备 33010602011771号