
图论
迷亭1213
帅帅帅
展开
-
割点和桥题集
分离的路径(rpaths)题意描述为了从 F个草场中的一个走到另一个,贝茜和她的同伴们不得不路过一些她们讨厌的可怕的树。奶牛们已经厌倦了被迫走某一条路,所以她们想建一些新路,使每一对草场之间都会至少有两条相互分离的路径,这样她们就有多一些选择。每对草场之间已经有至少一条路径,给出所有 R条双向路的描述,每条路连接了两个不同的草场,请计算最少的新建道路的数量。路径由若干道路首尾相连而成,两...原创 2020-01-05 17:39:05 · 733 阅读 · 0 评论 -
2-SAT问题
2-SAT问题问题的提出有 N 个变量,每个变量只能有两种可能的取值。再给定 M 个条件,每个条件都是对这两个变量的取值限制。求是否存在对 N 个变量的合法赋值,使 M 个条件均得到满足。这个问题被称为 2-SAT (satisfiability)问题。一般形式设一个变量 Ai(1 <= i <= N)的取值可能是 0 或者 1,或者称 p 或 q。那么 2-SAT 问题中 M...原创 2020-01-04 18:12:42 · 1886 阅读 · 0 评论 -
强连通分量题集
一本通OJ灵动OJA.受欢迎的牛(popular)题意描述原题来自:USACO 2003 Fall每一头牛的愿望就是变成一头最受欢迎的牛。现在有 N 头牛,给你 M 对整数 (A,B),表示牛 A 认为牛 B 受欢迎。这种关系是具有传递性的,如果 A 认为 B 受欢迎,B 认为 C 受欢迎,那么牛 A 也认为牛 C 受欢迎。你的任务是求出有多少头牛被除自己之外的所有牛认为是受欢迎的。解...原创 2020-01-04 16:34:46 · 1253 阅读 · 0 评论 -
2019CSP-J普及组复赛题解
A.数字游戏题意描述小 K 同学向小 P 同学发送了一个长度为 8 的 01 字符串来玩数字游戏,小 P 同学想 要知道字符串中究竟有多少个 1。 注意:01 字符串为每一个字符是 0 或者 1 的字符串,如“101”(不含双引号)为一 个长度为 3 的 01 字符串。解题思路签到题。代码示例#include<bits/stdc++.h>...原创 2019-11-26 20:09:03 · 12808 阅读 · 0 评论 -
最大流笔记
摘要正如可以通过将道路交通图模型化为有向图来找到从一个城市到另一个城市之间的最短路,我们也可以将一个有向图看作一个“流网络”,并使用它来回答关于物料流动方面的问题。这种流网络可以用来建模很多实际问题,包括液体在管道中的流动、装配线上的部件的流动、电网中电流的流动和通信网络中信息的流动。本文首先介绍网络流中的相关概念,然后给出最大流问题的一般解法思路,以及优化后的算法。我们应该将主要精力放在思维...原创 2019-11-15 13:21:03 · 316 阅读 · 0 评论 -
强连通分量
摘要强连通分量常用于缩点,是图论中一个重要的知识点。本文首先介绍了强连通分量的相关定义以及其应用范围,然后将着重介绍两种求强连通分量的算法:Kosaraju算法以及Tarjan算法,它们的时间复杂度都是O(n+m)(n:顶点数,m:边数)。其中Kosaraju算法思想简单,操作方便,易于理解与代码实现,但是性能以及拓展性上比Tarjan略逊一筹;本文将会逐一介绍这两种算法的思想以及实现步骤,最...原创 2019-08-24 15:55:17 · 8351 阅读 · 0 评论 -
差分约束系统
算法简介差分约束系统是一种特殊的N元一次不等式组,它包含N个变量X1−XNX_1 - X_NX1−XN以及M个约束条件,每个约束条件都是由两个变量作差构成的,形如Xi−Xj<=CkX_i - X_j <= C_kXi−Xj<=Ck,其中CkC_kCk是常数(可以为负),1<= i , j <= N, 1 <= k <= M。我...原创 2019-08-14 17:36:30 · 170 阅读 · 0 评论 -
最小生成树算法笔记
摘要最小生成树是图论中一类常见的问题,用来解决它的算法并不困难。其中Kruskal算法基于贪心思想以及最小生成树的一个定理(下文介绍),需要并查集辅助,适用于稀疏图;Prim同样基于贪心,需要借助二叉堆进行辅助,对于稠密图尤其是全图的最小生成树效率很快。本文主要介绍最小生成树的概念、用途以及相关算法。前置知识无向图前向星存图并查集二叉堆最小生成树最小生成树问题就是用来解决如何用...原创 2019-06-11 15:19:21 · 541 阅读 · 0 评论 -
POJ3362Telephone Lines解题报告
题意简述:在无向图上求出一条1~N的路径,使路径上第K+1大的边权最小。解题思路:本题可采用动态规划+SPFA,也可采用二分搜索,这里讲解二分搜索做法。我们知道,适用二分搜索的前提是答案具有单调性,本题符合该条件,于是我们可以把答案转化成:是否存在一种合法的升级方法,使花费不超过mid。转化后我们仍需做一些改变,我们令价格大于mid的边,边权看为1,小于等于的看作0,于是我们只需求1~n的...原创 2019-05-22 19:30:20 · 285 阅读 · 0 评论 -
双端队列BFS
问题模型1-1: 如果在一张图上(有向图和无向图),边权只可能是1或0,现在我们想从某个节点(假设为s)到另一个节点(假设为t),怎样才能使得路径上的权值和最大?这是最短路径问题中的特例,因为其边权只可能是0或1;同时这也是许多问题的抽象形式,很多问题可以抽象为上述模型1-1。我们的目标就是找到一个尽可能高效的算法解决上述问题模型。最短路径算法这是很容易想到的图论算法,解决此题的效率为O...原创 2019-05-22 18:09:40 · 3120 阅读 · 1 评论 -
最优贸易「图论」解题报告-反图
6101 最优贸易 0x60「图论」例题描述C国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道路在统计条数时也计为1条。C国幅员辽阔,各地的资源分布情况各不相同,这就导致了同一种商品在不同城市的价格不一定相同。但是,同一种商品在同一个城...原创 2019-05-22 13:25:52 · 320 阅读 · 0 评论 -
最短路径算法
前置知识: 图的相关定义、图的存储摘要:最短路径算法中常用的有4个:Floyed-Warshall、Dijkstra、Bellman-Ford、SPFA。这几种算法区别在于适用范围,以及对于不同构造的图效率不同。由于边的权值可以为负,在边权为负的情况下Dijkstra算法无法使用。而Bellman-Ford算法虽然可以处理负边权图,但却不能处理负权回路的情况(文中有介绍)。进一步的,我们可以...原创 2019-05-21 12:27:39 · 1262 阅读 · 0 评论 -
Dijkstra算法模板 C++
代码出自:《算法竞赛入门经典——训练指南》P328#include<iostream>#include<vector>#include<cstring>#include<queue>using namespace std;const int maxn = 10005;const int INF = 2147483647;struc...原创 2018-08-24 15:04:45 · 12801 阅读 · 1 评论 -
POJ3259 SPFA判定负环
原题链接:POJ3259解析:找了四五小时bug,打错俩个字母,想吃口屎冷静一下。代码示例:#include<iostream>#include<cstring>#include<queue>#include<cstdio>#include<vector>using namespace std;const int...原创 2018-08-27 16:27:29 · 8941 阅读 · 0 评论 -
HDOJ2586 最近公共祖先模板
原题链接:HDOJ2586解析:用树上倍增法来求LCA代码实例:#include<iostream>#include<cstdio>#include<queue>#include<cmath>#include<cstring>using namespace std;const int maxn = 40010;...原创 2018-08-27 15:25:25 · 8976 阅读 · 0 评论 -
POJ 1287 Prim算法模板
原题链接:POJ1287解析:这题我用来练习Prim算法的,算是当作一个模板来看。以下代码有几点要说明的:我使用了优先队列,并没有使用dist[u]数组来保存当前子树到 u 的最短距离,这样省去了找最短路的时间 由于队列中存放的最短距离,可能该点已经存在子树中了,所以需要判断删除代码实例:#include<iostream>#include<cstdio>...原创 2018-08-23 11:07:35 · 8912 阅读 · 0 评论 -
Bellman-Ford与SPFA判定负环
1.Bellmen-Ford判定负环思路:若经过n轮迭代,算法仍未结束(仍有能产生更新的边),则图中存在负环 若n - 1轮迭代之内,算法结束(所有边满足三角不等式),则图中无负环2.SPFA判定负环思路:设cnt[x]表示从1到x的最短路径包含的边数,cnt[1] = 0。当执行更新dist[y] = dist[x] + z 时,同样更新cnt[y] = cnt[x] + 1...原创 2018-08-27 09:15:31 · 9373 阅读 · 1 评论