2024年3月2日

摘要: T1 bf 的做法是 \(n\) 次 floyd,实测可以卡过。 然后我们发现当点 \(u\) 为重要点时,当且仅当存在 \((a,b)\) 使得 \(u\) 为它们的唯一中转点。 于是我们令 \(vis_{i,j}\) 表示 \((i,j)\) 的唯一中转点, 接着在 floyd 的松弛操作中若能 阅读全文

posted @ 2024-03-02 16:49 _XOFqwq 阅读(2) 评论(0) 推荐(0) 编辑

摘要: 继 算法竞赛进阶指南-学习笔记 之后的新内容。 将会比前面的简略许多,因为仅供个人使用。 0x41 并查集 P1955: 相等关系合并端点,不等关系若端点在同一集合则矛盾。注意离散化。实现。 UVA1316: solution。 P1196: solution。 P5937: 首先容易发现,若令 \ 阅读全文

posted @ 2024-03-02 16:48 _XOFqwq 阅读(8) 评论(0) 推荐(0) 编辑

摘要: 稍微讲一下 dijkstra qwq。 dijkstra、bellman-ford(or spfa)、bfs 的区别: dijkstra 以点为研究对象; bellman-ford / spfa 则以边为研究对象; 而 bfs 可以看作边权为 \(1\)(or 全都相同)的 dijkstra,因此它 阅读全文

posted @ 2024-03-02 16:48 _XOFqwq 阅读(3) 评论(0) 推荐(0) 编辑

摘要: T1 枚举流量对于花费跑 dijkstra 并取比值的 \(\max\) 即可。 关于为什么枚举流量不一定当前最优的问题,因为最优解的流量总在枚举范围内,所以无需考虑当前是否最优。 #include<bits/stdc++.h> using namespace std; int n,m,ans; i 阅读全文

posted @ 2024-03-02 16:46 _XOFqwq 阅读(2) 评论(0) 推荐(0) 编辑

摘要: 比赛链接 T1 \(100 \to 10\)。 错因: 01 背包转移方程写错,没有取 \(\max\)。 并查集合并错写成将 u,v 而非 fnd(u),fnd(v) 合并。 #include<bits/stdc++.h> using namespace std; int n,m,w; int c 阅读全文

posted @ 2024-03-02 16:46 _XOFqwq 阅读(2) 评论(0) 推荐(0) 编辑

摘要: bellman-ford: 因为最短路最多 \(n\) 点 \(n-1\) 边,则进行 \(n-1\) 轮操作,每轮枚举 \(m\) 边进行松弛即可。 时间复杂度 \(O(nm)\)。 spfa: 正确的称呼是队列优化的 bellman-ford。 我们知道,对于一个点,只有它被松弛了,它的邻接点才 阅读全文

posted @ 2024-03-02 16:46 _XOFqwq 阅读(2) 评论(0) 推荐(0) 编辑

摘要: 负环,即负权环,指在图 \(G\) 中边权和为负数的一回路。 负环的判定一般有两种方式。 以下均以 \(n\) 点 \(m\) 边的图 \(G\) 为例。 法一:以边为研究对象。 注意到最短路边数一定不超过 \(n-1\) 边,因此维护 \(cnt_x\) 表示起点到 \(x\) 的边数,若某一时刻 阅读全文

posted @ 2024-03-02 16:45 _XOFqwq 阅读(1) 评论(0) 推荐(0) 编辑

摘要: 强连通分量(Strongly Connected Components,SCC)。 强连通:有向图中,\(x,y\) 能相互到达。 弱连通:有向图中,\(x\) 能到 \(y\),\(y\) 不能到 \(x\)(或反之)。 强连通分量:有向图 \(G\) 中一极大子图 \(G1\),使得 \(G1\ 阅读全文

posted @ 2024-03-02 16:44 _XOFqwq 阅读(2) 评论(0) 推荐(0) 编辑

摘要: T1 第一问是简单的,答案即为缩点后入度为 \(0\) 的点。 对于第二问,考虑到当整个图就是一个 SCC 时能满足条件。 当整个图为一个 SCC 时,它仅可能是一个环。 而我们知道,让一个 DAG 形成环肯定要 将出度为 \(0\) 的点全部与入度为 \(0\) 的点相连。 于是第二问的答案即为 阅读全文

posted @ 2024-03-02 16:44 _XOFqwq 阅读(2) 评论(0) 推荐(0) 编辑

摘要: 补充一个对本题贪心思路更(?)清楚的解释。 本题贪心思路: 在 \(a_i,b_i\) 分别升序的情况下,对于每个 \(a_i\),与它差值最大的 \(b_i\) 只可能出现在 \(b_{n-i+1}\) 与 \(b_{m-i+1}\) 这两者中。 证明: 首先,假设我们有一个长度为 \(n\) 的 阅读全文

posted @ 2024-03-02 16:43 _XOFqwq 阅读(14) 评论(0) 推荐(0) 编辑