摘要:题目 https://leetcode.cn/problems/maximum-employees-to-be-invited-to-a-meeting/description/ 题解 从 \(i\) 向 \(favorite[i]\) 连边,会形成一张 \(n\) 个点 \(n\) 条边的有向图,
阅读全文
摘要:前言 基环树,又名环套树,是具有 \(n\) 个节点和 \(n\) 条边的图,比树多出现一个环。基环树也根据边的有向和无向分为了有向基环树和无向基环树。有向基环树又可以分为内向基环树和外向基环树。对于有向基环树,若基环树的每个节点的出度均为 \(1\),则称为内向基环树;若基环树的每个节点的入度均为
阅读全文
摘要:题解 内向基环树的一个基本特征就是总共有 \(n\) 个节点和 \(n\) 条边,且每个节点的出度至多为 \(1\),因此本题符合内向基环树的特征。 先使用拓扑排序,标记全部的简单环外的节点,剩余的节点就必定是环上的节点。 参考代码 class Solution { public: int long
阅读全文
摘要:前言 Floyd 算法(弗洛伊德算法)是解决图论中全源最短路径问题的一种经典算法。全源最短路径问题是指对于给定的一个带权有向图(也可以是无向图,将无向图看作双向有向图即可),求出每一对顶点之间的最短路径长度。Floyd 算法是动态规划思想的一个典型应用,动态规划的过程是引入一个中转节点来松弛路径。
阅读全文
摘要:题目 https://atcoder.jp/contests/abc286/tasks/abc286_e 题意 共 \(n(2 \leq n \leq 300)\) 个城市,对于每个城市输入 \(A_i(1 \leq A_i \leq 10^9)\) 代表该城市的值; 随后输入一张 \(n \tim
阅读全文
摘要:题目 https://leetcode.cn/problems/network-delay-time/description/ 题解 这是典型的单源最短路径模板题,思路是使用迪杰斯特拉算法算出从源点到所有点的最短路径的最大值,若存在无法抵达的目标点,则答案输出 \(-1\)。 参考代码 // 最短路
阅读全文