图论学习总结

目录

目录

图论学习总结

前言

  • 这是个人的图论学习刷题总结,圈内的开源氛围挺好的,发出来希望对大家的训练有所帮助,个人水平有限,如果有误希望帮忙指出。这篇博客涉及算法思想和例题以及相关解法和思路,所有例题和练习题本人均已ac,部分题提供ac代码地址(python),部分题不开另外时限python ac不了的会考虑提供 C++实现。
  • 本人学习图论是以蓝书《算法竞赛进阶指南》为教材,然后听了听牛客进阶课的图论专题,这篇博客所涉及到的题目基本包含蓝书图论的所有例题,还包括牛客上的一些题目以及个人图论学习总结​遇到的一些图论题,注:例题没有刻意的按难度排序,附上的题目连接以 Codeforces, NowCoder, 洛谷为主
  • 这篇博客在退役前会持续更新,目前例题还有很多题解没完善的,还有没加上例题的慢慢更新吧TAT,大概每个月重新上传一次吧,其中知识点大多以无序表的形式给出大纲较多,对于基本算法知识点不会的朋友可以自己利用搜索引擎学习这些知识。

一、基础知识

图的存储

  • 邻接矩阵
    • 二维数组图论学习总结 , 图论学习总结注意重边
  • 邻接表(数组模拟,链式前向星)
    • 表头数组图论学习总结
    • 边集大小 图论学习总结
    • 边集数组 $ verM,edgeM,nextM$​
  • 邻接表(图论学习总结++ 图论学习总结图论学习总结 图论学习总结)

图的遍历

  • 深度优先遍历
    • 访问标记避免重复、时间戳(图论学习总结序: 图论学习总结)
  • 广度优先遍历
    • 循环队列、优先队列
    • 边权为01的图上双端队列
  • 拓扑排序
    • 判定有向无环图(DAG)

二、最短路

多源最短路

图论学习总结​ 算法

​ 令 图论学习总结 表示**“经过若干个编号不超过k的结点”** 从 图论学习总结图论学习总结 的最短路。该问题可以划分为两个子问题,经过编号不超过 图论学习总结 的结点从 图论学习总结图论学习总结,或者先从 图论学习总结图论学习总结,再从 图论学习总结图论学习总结。于是:
图论学习总结
​ 初值为 图论学习总结,可以看到 图论学习总结 的本质是动态规划,图论学习总结 是阶段。其中 图论学习总结 这一维可以省略,即 图论学习总结

例题及变形
图论学习总结 图论学习总结

题目大意:

Sorting It All Out

​ 这是一道传递闭包问题,是Floyd算法的简单应用。我们可以对每个形如 图论学习总结 的不等式,令 图论学习总结,除了 图论学习总结 的其他情况都令 图论学习总结。我们可以用Floyd算法对 图论学习总结 求传递闭包,若存在 图论学习总结 则说明有矛盾,若均为0则说明不能确定关系。此时,我们可以再用二分法,二分 图论学习总结 的值,判断仅用前 图论学习总结 个不等式能否判断所有关系。

图论学习总结 图论学习总结

题目大意:

Sightseeing strip

​ 我们考虑 图论学习总结 的算法过程。当外层循环 图论学习总结 刚开始时, 图论学习总结 保存着经过编号不超过 图论学习总结 的结点从 图论学习总结图论学习总结 的最短路长度。于是,图论学习总结 就是满足以下两个条件的最小环长度:1、由编号不超过 图论学习总结 的结点构成。2、经过结点 图论学习总结。前面式子中的 图论学习总结 相当于枚举了环上与 图论学习总结 相邻的两个点,对 图论学习总结 都进行计算,取最小值即是答案(我们在考虑每个 图论学习总结 只考虑了由编号不超过 图论学习总结 的结点构成的最小环,由对称性可知,这样不会影响答案)。

图论学习总结 图论学习总结

题目大意:

Cow Relays

图论学习总结 算法是一种以”途径点集大小”为阶段的动态规划算法,在这道题我们可以考虑用以边的数量为阶段的图论学习总结方法经过倍增优化求解。首先,对于点的编号我们需要先进行离散化,假设离散化后点的数量为 图论学习总结图论学习总结图论学习总结 的邻接表。我们考虑从 图论学习总结 出发分别经过 图论学习总结 条边到 图论学习总结 的最短路,倍增优化的前提是状态可以按阶段任意划分,所以我们不妨令 图论学习总结 表示从 图论学习总结 出发恰好经过 图论学习总结 条边到达 图论学习总结。那么状态转移时的决策,我们只需要枚举中转点 图论学习总结,状态转移方程: 图论学习总结

​ 我们进一步考虑,其实这道题是一种广义的矩阵乘法,可以通过矩阵快速幂优化。我们考虑以下式子 图论学习总结,在式子中我们枚举了所有的中专点图论学习总结,对于每一对 图论学习总结 来说,图论学习总结 记录的是恰好经过两条边的最短路。

​ 若 图论学习总结 记录了所有点两两之间恰好经过 图论学习总结 条边的最短路,我们可以初始化 图论学习总结图论学习总结 表示恰好经过了 图论学习总结 条边从 图论学习总结,到 图论学习总结 的最短路。那么:图论学习总结,这个式子其实等价于一个关于图论学习总结图论学习总结的广义的”矩阵乘法”,我们可以先用快速幂计算出 图论学习总结,最后 图论学习总结 就是答案,每次矩阵乘法是图论学习总结,一共 图论学习总结 次,时间复杂度为 图论学习总结​。

​ ac代码参考:代码查看 (nowcoder.com)

练习题

Gym-104023-Problem – F (2022图论学习总结威海F,金牌题,Floyd +建图+用类似 图论学习总结 的做法,找出以每个点 s 为根的有向瓶颈生成树)

单源最短路

知识点
  • 图论学习总结
  • 图论学习总结图论学习总结图论学习总结 已死)
  • 图论学习总结(只适用于边权只有0和1的图)
  • 图论学习总结 (有向无环图)
例题及变形
图论学习总结 (B-最优贸易_ )

题目大意:

最优贸易

​ 本题是让我们在一张结点带有权值的图上找出一条从 图论学习总结图论学习总结 的路径,使得路径上能够找出两个点 图论学习总结图论学习总结 最大。

​ 我们可以把这张图当作有向图处理,从结点 图论学习总结 出发跑一次 “最短路” 算法,预处理出当前结点 图论学习总结 的前驱结点中所有点权的最小权值,记为 图论学习总结,同理我们可以反向建图从 图论学习总结 出发预处理出在正图中当前结点 图论学习总结 之后所有点权的最大值记为 图论学习总结,最后枚举每个结点 图论学习总结,用 图论学习总结 更新答案即可。

​ 注意,上述预处理中的 “最短路” 算法可以将松弛操作分别改为 图论学习总结 那么松弛更新的操作就不满足图论学习总结 的贪心性质,我们可以用 图论学习总结 算法。

图论学习总结​ (C-Roads and Planes_0x61 图论-最短路)

题目大意:

Road and Planes

​ 这道题是一个十分明显的单源点最短路问题,但图中带有负权边,我们不能直接使用图论学习总结,又因为有特殊构造的数据,所以我们使用 图论学习总结图论学习总结。这时候我们就要注意到**双向边都是非负的,只有单向边可能是负的,并且单向边不构成环。**我们可以利用这一性质解决本题。

​ 如果我们只看双向边,会发现是一个个的连通块,连通块内所有边均为非负边权。那么我们可以对每一个连通块内跑 图论学习总结 算法。这时候如果我们把每一个连通块看作一个点的话,那么加上单向边(航线),那么整个图就是一张有向无环图,不管边权正负,我们都可以通过图论学习总结在线性时间内求出最短路。

​ 至此,这道题的解法已经很明显了,图论学习总结。我们在外层维护每一个连通块的度数图论学习总结,在每个块内跑图论学习总结,遇到负权单向边,则更新连通块的度数用于外层的拓扑排序。

​ 整个的时间复杂度为图论学习总结 具体实现:代码查看 (nowcoder.com)

图论学习总结 图论学习总结亚太锦标赛 J

题目大意

There and Back Again

​ 这是一道最短路的变形,题目要求从 图论学习总结图论学习总结 再到 图论学习总结 的最短距离,并且要求 图论学习总结图论学习总结图论学习总结图论学习总结 的路径不相同。

首先,我们考虑最短路,要想总和最小那么去和回至少有一条是最短路,不妨就去时走最短路,那么 图论学习总结图论学习总结,我们可以直接在图中跑 图论学习总结 算法记为 图论学习总结,考虑回的时候,我们可以再以 图论学习总结 为起始点跑一边最短路,记为 图论学习总结,我们可以枚举每一条边,如果不在去的路径中,我们用 图论学习总结 更新答案,其最小值就是我们需要的答案。

​ 实现细节:C++可以用链式前向星存图,边的话就有对应下标,开个数组标记即可,python的话用邻接表存图,直接用set当vis即可,ac代码参考(图论学习总结​​):Submission #256743872 – Codeforces

图论学习总结 图论学习总结 (金牌题,拓扑排序+DP+贪心)

题目大意

Little 图论学习总结 is solving a puzzle. The key to the puzzle is a permutation containing numbers 图论学习总结. The values at some positions of the permutation are already fixed, and 图论学习总结 needs to fill numbers into the remaining positions.

Besides, little 图论学习总结 has gathered 图论学习总结 extra requirements about the permutation. Let the solution be represented as 图论学习总结, each clue is a pair of indices 图论学习总结, which means that 图论学习总结​ should be satisfied in the solution.

Little 图论学习总结 wonders if all requirements may be satisfied at the same time. Write a program to find a valid solution when there is one.

​ 这是一道灵活运用图论学习总结求最短路的题,想到图论不难,难点是想到用图论算法这么做。

​ 根据所给限制建图,将 图论学习总结 的限制视为一条 图论学习总结 的单向边,题目保证会得到一个 图论学习总结。 设在 图论学习总结 上存在一条从 图论学习总结图论学习总结 的边数为 图论学习总结 的路径,若 图论学习总结 已知而 图论学习总结 未知,则可以推出 图论学习总结; 若 图论学习总结 未知而 图论学习总结 已知,则可以推出 图论学习总结。 首先我们通过上述规则推导出所有位置的取值范围 图论学习总结。对于已知位置,显然 图论学习总结,对于未知位置,可以用图论学习总结 来求解。先正向拓扑排序求出 图论学习总结:对于边 图论学习总结,做转移 图论学习总结,然后反向拓扑排序求出 图论学习总结:对于边 图论学习总结,做转移 图论学习总结

​ 于是转化为如下问题:给定 图论学习总结 个区间和 图论学习总结 个互不相同的数,我们需要给每个数匹配一个包含它的区间,此外每个区间匹配的数还要满足一些拓扑关系(形如图论学习总结的约束)。如果暂时不考虑拓扑关系的话是一个经典问题,存在一个简单的贪心做法:从小到大枚举所有数,当枚举到 图论学习总结 时,从所有左端点 图论学习总结 且还没被匹配的区间中,选择右端点最小的那个匹配给 图论学习总结,这个过程用优先队列优化。

​ 然后分析一下区间的性质:如果存在边 图论学习总结,根据转移方程可得 图论学习总结,按 照上述贪心做法,图论学习总结 一定比 图论学习总结 更早被匹配到,即一定满足 图论学习总结。所以直接贪心求出来的就是原问题的合法解,如果贪心无解则原问题一定无解。 总时间复杂度 图论学习总结

启发:对于图论学习总结不仅可以用来就图论学习总结的最短路,对于这种可行解的问题,我们可以用图论学习总结将答案优化到一个区间内,此时可能会将问题转化为另一个较简单直白的问题,如本题转化为了一个简单的贪心问题。

ac代码参考:Submission #256911647 – Codeforces

图论学习总结 图论学习总结P3953 NOIP2017 提高组] 逛公园 – 洛谷 | 计算机科学教育新生态

题目大意

策策同学特别喜欢逛公园。公园可以看成一张 图论学习总结 个点 图论学习总结 条边构成的有向图,且没有自环和重边。其中 图论学习总结 号点是公园的入口,图论学习总结 号点是公园的出口,每条边有一个非负权值, 代表策策经过这条边所要花的时间。

策策每天都会去逛公园,他总是从 图论学习总结 号点进去,从 图论学习总结 号点出来。

策策喜欢新鲜的事物,它不希望有两天逛公园的路线完全一样,同时策策还是一个 特别热爱学习的好孩子,它不希望每天在逛公园这件事上花费太多的时间。如果 图论学习总结 号点 到 图论学习总结 号点的最短路长为 图论学习总结,那么策策只会喜欢长度不超过 图论学习总结 的路线。

策策同学想知道总共有多少条满足条件的路线,你能帮帮它吗?

为避免输出过大,答案对 图论学习总结 取模。如果有无穷多条合法的路线,请输出 图论学习总结

输入格式

第一行包含一个整数 图论学习总结, 代表数据组数。

接下来 图论学习总结 组数据,对于每组数据: 第一行包含四个整数 图论学习总结,每两个整数之间用一个空格隔开。

接下来 图论学习总结 行,每行三个整数 图论学习总结,代表编号为 图论学习总结 的点之间有一条权值为 图论学习总结 的有向边,每两个整数之间用一个空格隔开。

输出格式

输出文件包含 图论学习总结 行,每行一个整数代表答案。

【测试数据与约定】

对于不同的测试点,我们约定各种参数的规模不会超过如下

测试点编号 图论学习总结 图论学习总结 图论学习总结 图论学习总结 是否有 图论学习总结
图论学习总结 图论学习总结 图论学习总结 图论学习总结 图论学习总结
图论学习总结 图论学习总结 图论学习总结 图论学习总结 图论学习总结
图论学习总结 图论学习总结 图论学习总结 图论学习总结 图论学习总结
图论学习总结 图论学习总结 图论学习总结 图论学习总结 图论学习总结
图论学习总结 图论学习总结 图论学习总结 图论学习总结 图论学习总结
图论学习总结 图论学习总结 图论学习总结 图论学习总结 图论学习总结
图论学习总结 图论学习总结 图论学习总结 图论学习总结 图论学习总结
图论学习总结 图论学习总结 图论学习总结 图论学习总结 图论学习总结
图论学习总结 图论学习总结 图论学习总结 图论学习总结 图论学习总结
图论学习总结 图论学习总结 图论学习总结 图论学习总结 图论学习总结

对于 图论学习总结 的数据,图论学习总结图论学习总结图论学习总结

数据保证:至少存在一条合法的路线。

  • 2019.8.30 增加了一组 hack 数据 by @skicean
  • 2022.7.21 增加了一组 hack 数据 by @djwj233

题目分析

​ 关于方案数的统计,我们考虑动态规划,令图论学习总结表示从起点到 图论学习总结,比最短路多 图论学习总结 的长度的路径方案数。状态转移:图论学习总结。对于这样的转移,我们需要按照一定的顺序,我们发现我们的阶段是 图论学习总结, 即我们要先算图论学习总结再算图论学习总结,以此类推。

​ 我们不妨直接写成记忆化搜索,这样我们就可以忽略顺序的问题了。记忆化搜索的入口是直接从第 图论学习总结​ 个点开始往前回溯,在返回时更新状态,我们需要一张与原图完全相反的图。

​ 关于无穷多合法路线的理解:图中含有 图论学习总结 环,且和答案有关的路径有关系,这个需要单独判断。如果有 图论学习总结 环,我们在记忆化搜索时会重复访问到图论学习总结,我们在记忆化搜索中加一个访问标记即可。

启发

​ 关于最短路有要求多少条边的(如牛站),有路径条数计数或方案计数的(如习题 图论学习总结),或是要将图论学习总结限制在某一区间里的(如上一道例题图论学习总结 图论学习总结)一般都用到了动态规划递推求解,区别在于阶段和状态的表示与转移不同。可见对于类似的这类问题,我们一般会通过分解为子问题的方式通过动规来求解,在比赛中遇到此类问题需要有一定的灵敏性。

欧拉回路
差分约束系统

​ 差分约束系统是一中特殊的图论学习总结元一次不等式组。它包含 图论学习总结 个变量 图论学习总结~图论学习总结 以及 图论学习总结 个约束条件,每个约束条件都形如 图论学习总结 其中 图论学习总结 是常数。我们的问题就是求一组解 图论学习总结 是所有的约束条件满足,或确定其无解。

图论学习总结 P3275 SCOI2011 糖果 – 洛谷(差分约束)

题目大意

幼儿园里有 图论学习总结 个小朋友,图论学习总结 老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候,图论学习总结 需要满足小朋友们的 图论学习总结 个要求。幼儿园的糖果总是有限的,图论学习总结 想知道他至少需要准备多少个糖果,才能使得每个小朋友都能够分到糖果,并且满足小朋友们所有的要求。

输入格式

输入的第一行是两个整数 图论学习总结图论学习总结。接下来 图论学习总结 行,表示这些点需要满足的关系,每行 图论学习总结 个数字,图论学习总结图论学习总结图论学习总结

  • 如果 图论学习总结, 表示第 图论学习总结 个小朋友分到的糖果必须和第 图论学习总结 个小朋友分到的糖果一样多;
  • 如果 图论学习总结, 表示第 图论学习总结 个小朋友分到的糖果必须少于第 图论学习总结 个小朋友分到的糖果;
  • 如果 图论学习总结, 表示第 图论学习总结 个小朋友分到的糖果必须不少于第 图论学习总结 个小朋友分到的糖果;
  • 如果 图论学习总结, 表示第 图论学习总结 个小朋友分到的糖果必须多于第 图论学习总结 个小朋友分到的糖果;
  • 如果 图论学习总结, 表示第 图论学习总结 个小朋友分到的糖果必须不多于第 图论学习总结 个小朋友分到的糖果;

输出格式

输出一行,表示 图论学习总结 老师至少需要准备的糖果数,如果不能满足小朋友们的所有要求,就输出 图论学习总结

对于 图论学习总结 的数据,保证 图论学习总结

对于 图论学习总结 的数据,保证 图论学习总结

对于所有的数据,保证 图论学习总结

洛谷: 图论学习总结:新添加 图论学习总结Hack 数据

ac 代码参考:代码查看 (nowcoder.com)

图论学习总结 分数规划
A-Sightseeing Cows(nowcoder.com)(spfa判负环+二分求解01分数规划问题)
练习题

2023_ICPC_杭州站 – G – Codeforces(1/2个银牌题)

B-Intervals_0x65 图论-负环与差分约束(差分约束)

[图论学习总结]ROAD (nowcoder.com)(最短路加动态规划)

D-Tokitsukaze and Slash Draw_2024牛客寒假集训营2 (%图论学习总结​下的最短路 or DP)

1020-胖胖的牛牛 (nowcoder.com) (拆点建图思想)

图论学习总结 (图论学习总结)

三、树论以及图的联通性

最小生成树

图论学习总结 A-走廊泼水节(nowcoder.com)(克鲁斯卡尔思想的灵活运用)

题目大意

给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树。 求增加的边的权值总和最小是多少。

图论学习总结B-Picnic Planning (nowcoder.com)(码量较大)

题目大意

Picnic Planning

生成树计数

图论学习总结、树上差分及应用

知识点
  • 树的直径
    • 树形DP
    • 两次图论学习总结 (注意运用条件)
  • 图论学习总结
    • 树上倍增法
    • 图论学习总结 算法 (离线算法)
例题
图论学习总结 巡逻 (树的直径)

题目大意

待更新

图论学习总结 闇の連鎖_(树上差分)

题目大意

闇の連鎖

​ 根据题意,“主要边”构成一棵树,“附加边”是非树边。把一条附加边 图论学习总结 添加到树上会构成一个环,如过一开始切断 图论学习总结~图论学习总结 路径上的一条边,那么第二条必须切断 图论学习总结 才能将 图论学习总结 分为不连通的两部分。我们可以考虑 图论学习总结图论学习总结~图论学习总结 路径上的树边覆盖了一次,那么如果我们第一次切掉覆盖数为 图论学习总结 的树边, 那么之后切任意一条非树边即可,如果我们切掉覆盖数为 图论学习总结 的树边,第二步的切分唯一,其余情况无法将 图论学习总结 分为不连通的两部分。

​ 由上述分析可知,我们要解决问题的模型就是在给定的一张无向图和一课生成树,求非树边将树边覆盖了多少次。解决这一问题的经典做法就是“树上差分”。给定每个结点的权值初值为 图论学习总结,对于每条非树边 图论学习总结 我们让 图论学习总结,最后用树形DP做一次 “子树前缀和” 即可得到每条树边的覆盖次数,然后统计即可得到答案。

​ 关于时间复杂度:考虑用树上倍增法求图论学习总结,复杂度为 图论学习总结。对于覆盖次数的预处理和答案求解需要遍历整张图,复杂度为 图论学习总结。总的时间复杂度为 图论学习总结

启发: 如果我们需要对树上的一条路径的每条边加上一个 图论学习总结,我们可以转化为 图论学习总结

图论学习总结 E-天天爱跑步
图论学习总结F-异象石_
图论学习总结G-次小生成树_
图论学习总结 H-疫情控制_

基环树

图论学习总结 [P4381 IOI2008] Island – 洛谷

题目大意

岛屿

​ 现在我们考虑每一棵基环树答案的情况1、不经过环(该情况可树形DP求解,即求树的直径)2、经过环。对于情况二我们要找到环上的两个结点 图论学习总结,使得 图论学习总结 最大,其中 图论学习总结 是环上两点的距离,我们把环拆开复制一倍,再做线性 图论学习总结 即可求得答案,用单调队列优化,该DP时间复杂度为图论学习总结 图论学习总结 为环的点数。总的时间复杂度为 图论学习总结

​ 关于实现,这道题需要 图论学习总结图论学习总结 找连通块和环,还要树形 图论学习总结 求直径,再对环做 图论学习总结 等等,常数比较大,图论学习总结图论学习总结 还可能爆栈c++实现如下:记录详情 – 洛谷 | 计算机科学教育新生态 (luogu.com.cn)(ac代码)

python实现如下:

记录详情 – 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

结果:

结果

图论学习总结 B-创世纪_

题目大意

创世纪

图论学习总结K-牛镇公务员考试(基环树一般的处理方式)

题目大意

牛镇公务员考试

图论学习总结2023_ICPC_杭州站 – H – Codeforces(基环树 + 概率,1/2个银牌题)

题目大意

Sugar is sweet. There are 图论学习总结 children asking for sugar. Prof. Chen gives out sugar to the children. The 图论学习总结-th child initially has 图论学习总结 bags of sugar. There are 图论学习总结 events happening in uniformly randomized order. The 图论学习总结-th event is:

  • If the 图论学习总结-th child has strictly less bags of sugar than the 图论学习总结-th child, then the 图论学习总结-th child will get extra 图论学习总结 bags of sugar. Otherwise, nothing happens.

Now, since the events happen in random order, Randias, which is the assistant of Prof. Chen, wants to know the expected number of bags of sugar each child will have after all the events happen.

It can be shown that the answer can be expressed as an irreducible fraction 图论学习总结 where 图论学习总结 and 图论学习总结 are integers and 图论学习总结. Output the integer equal to 图论学习总结. In other words, output such an integer 图论学习总结 that 图论学习总结 and 图论学习总结​.

图论学习总结与无向图的连通性

注:python 的Tarjan算法与连通性相关代码模板和知识点可以看我的这篇博客

图论学习总结与有向图的连通性

注:python 的Tarjan算法与连通性相关代码模板和知识点可以看我的这篇博客

练习题

B-树网的核_0x63 图论-树的直径与最近公共祖先

C-最优比率生成树_0x62 图论-最小生成树 (0/1分数规划)

D-雨天的尾巴 (树上差分的综合运用)

四、二分图及图匹配

二分图常见模型

  • 二分图判定
    • 黑白染色,不含奇圈(点可以分成左右两部份,每一部份内没有边)
  • 最大匹配
    • 增广路算法(匈牙利算法)
    • 最小点覆盖
    • 最大独立集
    • 最小路径覆盖
  • 带权匹配
    • KM算法
  • 二分图与网络流的联系

二分图例题

图论学习总结 [图论学习总结​]假期的宿舍(二分图最大匹配板题)

题目大意

图论学习总结​​ C-Going Home(二分图带权匹配KM算法)

题目大意

Going Home

图论学习总结 棋盘覆盖(蓝书例题)

题目大意

给定一个图论学习总结图论学习总结列的棋盘,已知某些格子禁止放置。求最多能往棋盘上放多少块的长度为 图论学习总结、宽度为 图论学习总结 的骨牌。骨牌的边界与格线重合(骨牌占用两个格子),并且任意两张骨牌都不重叠。图论学习总结

图论学习总结 L-城市物流(cf上也有对应原题,rating 2600,二分图匹配模型综合题)

题目大意

城市物流

一般图匹配

练习题

A-情侣和聚餐(cf上也有对应题目,2600, 二分图+构造)

D-炸弹(二分图最大匹配)

[E-ZJOI2007]矩阵游戏(二分图最大匹配)

G-画圈游戏

H-占领城市(最小路径覆盖,拆点跑最大匹配或最大流)

I-中心图(思维+暴力+二分图匹配)

J-插座(思维+暴力+二分图匹配)

五、网络流初步

  • 网络流的核心在于建图。建图是精髓也是难点。
  • 网络流的建图方法一定程度上刻画了贪心问题的内在性质,从而简便地支持了反悔,不需要我们为每道贪心问题都寻找反悔策略。

最大流(Maximum flow,简称 图论学习总结

图论学习总结 图论学习总结 最小路径覆盖问题 – 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

题目大意

(启发:对于限制了点的出入度都为1的时候,我们可以将一个点拆成一个入点和一个出点)

最小费用最大流(Minimum cost maximum flow,简称 图论学习总结

常见的建模思路

六、综合模型及应用(以题目总结为主)

分层图思想

图论学习总结​​​A-Telephone Lines(蓝书例题)

题目大意

Telephone Lines

解法一:动态规划

​ 仿照动态规划的思想,用图论学习总结 表示从 图论学习总结 到达 图论学习总结,途中已经指定了 图论学习总结 条电缆免费时,经过路径上最贵的边的花费的最小值。若有一条边 图论学习总结图论学习总结图论学习总结。两个式子分别表示不用免费的升级服务,用一次免费的升级服务。可以看到我们的状态转移明显是有后效性的,一种解决方案是利用迭代的思想,借助图论学习总结算法就行动规,直至所有状态收敛。对于特殊构造的数据 图论学习总结 的时间复杂度可能退化为 图论学习总结,谨慎使用。

解法二:分层图最短路

​ 从最短路问题的角度去理解,图中的结点可以扩展到二维元组 图论学习总结 表示一个结点。对于边 图论学习总结,我们可以在分层图中 图论学习总结图论学习总结 连一条边权为 图论学习总结 的有向边,那么我们就构造出了一个 图论学习总结 个点 图论学习总结 条边的分层图。其中不同层之间的有向边帮助我们确保了答案的计算只能从低层向高层转移,解决了后效性问题。这类广义的最短路问题被称为分层图最短路问题,我们可以直接在分层图上跑 图论学习总结 即可得到答案。 时间复杂度为 图论学习总结

解法三:二分答案+图论学习总结

我们进一步思考本题答案的性质,当支付的钱更多时,合法的升级方案一定包含了花费更少的升级方案,也就是说当 图论学习总结 确定时,我们花费的钱更多,合法的方案也就更多,方案数有单调性,我们考虑二分答案,那么问题就转化为:是否存在合法的方案使得花费不超过图论学习总结

​ 对于 图论学习总结 函数,我们只需要将花费小于等于 图论学习总结 的边权设为 图论学习总结,其余设为 图论学习总结,我们可以用双端队列图论学习总结 求出边权只包含 图论学习总结 的单源最短路问题。判断是否 图论学习总结 即可。时间复杂度为 图论学习总结

ac代码参考:分层图最短路二分答案+图论学习总结

图论学习总结1012-小雨坐地铁(nowcoder.com)

题目大意

小雨坐地铁

图论学习总结Problem – 1915G – Codeforces(注意带点贪心剪枝)

题目大意

All of Slavic’s friends are planning to travel from the place where they live to a party using their bikes. And they all have a bike except Slavic. There are 图论学习总结 cities through which they can travel. They all live in the city 图论学习总结 and want to go to the party located in the city 图论学习总结. The map of cities can be seen as an undirected graph with 图论学习总结 nodes and 图论学习总结 edges. Edge 图论学习总结 connects cities 图论学习总结 and 图论学习总结 and has a length of 图论学习总结.

Slavic doesn’t have a bike, but what he has is money. Every city has exactly one bike for sale. The bike in the 图论学习总结-th city has a slowness factor of 图论学习总结. Once Slavic buys a bike, he can use it whenever to travel from the city he is currently in to any neighboring city, by taking 图论学习总结 time, considering he is traversing edge 图论学习总结 using a bike 图论学习总结 he owns.

Slavic can buy as many bikes as he wants as money isn’t a problem for him. Since Slavic hates traveling by bike, he wants to get from his place to the party in the shortest amount of time possible. And, since his informatics skills are quite rusty, he asks you for help.

What’s the shortest amount of time required for Slavic to travel from city 图论学习总结 to city 图论学习总结? Slavic can’t travel without a bike. It is guaranteed that it is possible for Slavic to travel from city 图论学习总结​ to any other city.

图论学习总结NC22594, 1031-Rinne Loves Graph(nowcoder.com)

题目大意

Rinne Loves Graph​

平面图思想

最短路图

其他

拆点建图
搭平台建图
图论学习总结Meeting (nowcoder.com)(UVALive7250 / hduoj 5521,15年沈阳站银牌题)

题目大意

Meeting

输入描述,注意数据范围

The first line contains an integer 图论学习总结, the number of test cases. Then 图论学习总结 test cases
follow.

The first line of input contains 图论学习总结 and 图论学习总结. 图论学习总结. The following m lines describe the sets 图论学习总结. Each line will contain two integers 图论学习总结 and 图论学习总结 firstly. Then 图论学习总结 integer follows which are the labels of blocks in 图论学习总结. It is guaranteed that 图论学习总结​.

图论学习总结 Problem – 1941G – Codeforces(搭平台跑最短路,相当于把图集合化,cf rating 2000)

题目大意

Building bridges did not help Bernard, and he continued to be late everywhere. Then Rudolf decided to teach him how to use the subway.

Rudolf depicted the subway map as an undirected connected graph, without self-loops, where the vertices represent stations. There is at most one edge between any pair of vertices.

Two vertices are connected by an edge if it is possible to travel directly between the corresponding stations, bypassing other stations. The subway in the city where Rudolf and Bernard live has a color notation. This means that any edge between stations has a specific color. Edges of a specific color together form a subway line. A subway line cannot contain unconnected edges and forms a connected subgraph of the given subway graph.

An example of the subway map is shown in the figure.

Rudolf claims that the route will be optimal if it passes through the minimum number of subway lines. Help Bernard determine this minimum number for the given departure and destination stations.

最小树形图
图论学习总结 [1036-[图论学习总结] 滑雪与时间胶囊](https://ac.nowcoder.com/acm/contest/26077/1036)

题目大意

滑雪与时间胶囊

模型综合运用练习题

Problem – J – Codeforces(图论学习总结桂林,金牌题,拓扑排序+DP+贪心)

Problem – G – Codeforces(图论学习总结哈尔滨,银牌题,最短路+状压期望DP)

Problem – B – Codeforces(图论学习总结山东省赛,金牌题,拓扑排序,优先队列优化)

Problem – J – Codeforces图论学习总结山东省赛,金牌题,图论背景+位运算,类似于数位DP的思想)

参考资料

1、OI Wiki
2、李煜东 《算法竞赛进阶指南》
3、邓丝雨 牛客图论专题班教案
4、图论学习总结网络流,二分图与图的匹配

版权声明:本文为博主作者:smile是对你的礼貌~@济南大学原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/smile__everydays/article/details/137881868

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2024年4月22日
下一篇 2024年4月22日

相关推荐