前言 本来先搞计算几何再搞网络流的,但是**总是发网络流的题,然后天天被信息组巨佬爆踩,所以先学一下最基本的Dinic算法吧。我也只是大致理解了流程,其实不懂也没事,只要会堆代码就好了(QAQ),所以下面只有教你如何堆代码啦(……)。 基本概念 图和收发点 一个图是由点集V={vi}和V中元素的无序 ...
分类:
编程语言 时间:
2020-05-22 19:14:06
阅读次数:
57
网络流常见建图套路总结(重制版) [TOC] 前置知识 1. 网络流的基本算法:Dinic最大流,EK+SPFA求费用流 2. 最小割,最小割最大流定理 3. 二分图判定,匹配,相关性质 4. 常见最短路径算法:Dijkstra,SPFA,Floyd 最大流 二分图最大匹配与多重匹配 定义: 二分图 ...
分类:
其他好文 时间:
2020-05-18 21:08:15
阅读次数:
72
最大流 Edmond Karp 原版的是用邻接矩阵写的,太耗内存了,这里改成邻接表。 Dinic 玄学的Dinic ...
分类:
其他好文 时间:
2020-05-16 20:38:32
阅读次数:
54
不得不复习一下网络流了,先复习最大流模板吧 最主要的就是dfs和bfs过程吧 bfs是为了分层和判断是否需要继续 显然对于一个图,分层之后,对于任一一边,起点要么加一等于终点,要么终点小于起点 终点小于起点的显然已经计算过,不需要松弛() 判断是否需要继续增广实际上是看终点是否有depth就可以解决 ...
分类:
其他好文 时间:
2020-05-03 15:06:04
阅读次数:
70
网络流二·最大流最小割定理 AC_Code: 1 #include <bits/stdc++.h> 2 #include <ctime> 3 #include <algorithm> 4 #include <random> 5 using namespace std; 6 typedef long ...
分类:
其他好文 时间:
2020-04-25 01:02:59
阅读次数:
73
T1: 先跑个Floyd,然后求一下建在点上的答案 容易发现已经把答案限制的比较紧了 然后统计边的答案,加一个最优性剪枝 然后考虑二分解决就行了 如果不加剪枝,复杂度为$O(n^3+n^3logC)$ 如果加上的话,因为第一次就把答案限制的很紧,所以复杂度大概为$O(n^3+n^2logC)$ T2 ...
分类:
其他好文 时间:
2020-04-19 11:18:18
阅读次数:
72
换根dp板子题 ,首先,我们要想想如果根为1时,1的答案 我们设$dp[i]$表示以$i$为根子树的中,若$i$有无限流量,i点能往下流的最大流量。 我们不难推出式子$dp[i]=\sum_{v\in son(i)}min(dp[v],w(u v))$ 意义就是,我们知道一个儿子v可以向下流的最大流 ...
分类:
其他好文 时间:
2020-04-13 12:26:06
阅读次数:
53
不相交就直接搞啊。。没啥技巧,i j如果选了就是(i,j)选了。 ...
分类:
其他好文 时间:
2020-04-11 09:50:05
阅读次数:
93
前置知识: 混合图:一幅图中既有单向边,又有双向边。 混合图(既有有向边又有无向边的图)中欧拉环、欧拉路径的判定需要用到网络流这个算法!!! 有向图的欧拉回路的条件:所有的节点出度等于入度。 下面这两题基本差不多,但是建边啊、判断欧拉图啊等还是有区别的。 总之最后都是需要判断是否为满流,如果为满流则 ...
分类:
其他好文 时间:
2020-04-09 14:11:58
阅读次数:
134
题目背景 这本是一个非常简单的问题,然而奶牛们由于下雨已经非常混乱,无法完成这一计算,于是这个任务就交给了你。(奶牛混乱的原因看题目描述) 题目描述 在一个农场里有 nn 块田地。某天下午,有一群牛在田地里吃草,他们分散在农场的诸多田地上,农场由 mm 条无向的路连接,每条路有不同的长度。 突然,天 ...
分类:
其他好文 时间:
2020-04-08 20:47:17
阅读次数:
71