C++图论

CSDN 2024-08-07 14:35:02 阅读 74

算法可以发掘本质,如:

一,若干师傅和徒弟互有好感,有好感的师徒可以结对学习。师傅和徒弟都只能参加一个对子。如何让对子最多。

二,有无限多1X2和2X1的骨牌,某个棋盘若干格子坏了,如何在没有坏的格子放足够多骨牌。

三,某个单色图,1表示前前景,0表示后景色。每次操作可以将一个1,变成0。如何在最少得操作情况下,使得没有两个1相邻(四连通)。

四,若干路人,有些人是熟人,如何选出最多的人参加实验。为了避免熟人影响实验的效果,参加的人不能是熟人。

一二是二分图的最大匹配,三是二分图的最小点覆盖,四是二分图最大独立集。 而这三者是等效问题。

子分类

深度优先搜索汇总

广度(宽度)优先搜索

C++算法:广度优先搜索(BFS)的原理和实现

并集查找

C++二分查找或并集查找:交换得到字典序最小的数组

【图论】【并集查找】【C++算法】928. 尽量减少恶意软件的传播 II

【广度优先搜索】【图论】【并集查找】2493. 将节点分成尽可能多的组

最短路径

C++算法:多源最短路径的原理及实现

C++算法:存在负权边的单源最短路径的原理和实现

动态规划 多源路径 字典树 LeetCode2977:转换字符串的最小成本

【单源最短路 图论】882. 细分图中的可到达节点

暂无题解:

2203

最小生成树

【图轮】【 最小生成树】【 并集查找】1489. 找到最小生成树里的关键边和伪关键边

拓扑排序

【图论】【拓扑排序】1857. 有向图中最大颜色值

【拓扑排序】【 图论】1203. 项目管理

【图论】【树】 【拓扑排序】2603. 收集树中金币

【逆向思考 】【拓扑排序】1591. 奇怪的打印机 II

暂无题解:2050 2392

【图论 深度优先搜索】树的直径

换根法

【深度优先搜索】【C++算法】834 树中距离之和

【图论】【深度优先搜索】【换根法】2858. 可以到达每一个节点的最少边反转次数

【树上倍增】【割点】 【换根法】3067. 在带权树网络中统计可连接服务器对数目

树的路径

【深度优先搜索】【树】【状态压缩】2791. 树中可以形成回文的路径数

欧拉路径、欧拉环

【深度优先搜索】【图论】【推荐】332. 重新安排行程

【数学】【深度优先搜索】【图论】【欧拉环路】753. 破解保险箱

【欧拉回路】【图论】【并集查找】765. 情侣牵手

暂无题解:2097

基环树

基环树,也是环套树,是一种有 n 个点 n 条边的图,简单地讲就是树上在加一条边。它形如一个环,环上每个点都有一棵子树的形式。

基环内向树:每个点出度为1(因此每个环上点的子树,儿子指向父亲)

基环外向树:每个点入度为1(因此每个环上点的子树,父亲指向儿子)

基环树的关键就是找到环,可以先把环当作这个无根树的 “根” ,也就是把环当成一个点(先不管它),这样一颗基环树就变成了一个普通的树,然后我们先按照解决普通树的方法对“根”的所有子树依次处理求解答案

【图论】【基环内向树】【广度优先】【深度优先】2127. 参加会议的最多员工数

暂无题解:

2876 有向图访问计数 基环内向树

2360图中的最长环

树上倍增

【树上倍增】2836在传球游戏中最大化函数值

【深度优先】【树上倍增 】2846. 边权重均等查询

扩展内容难道较大

二分图(染色判定、最大匹配)

【广度优先搜索】【二分图】【并集查找】2493. 将节点分成尽可能多的组

【二分图】【二分图最大匹配】LCP 04. 覆盖

割点、割边

很难点,割点周赛、双周赛没出过。 割边出现过一次。

割点原理及封装好的割点类 有四五题应用,不是必选算法

【图论】【 割边】【C++算法】1192. 查找集群内的关键连接



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。