http://uoj.ac/problem/217 题解: 考虑查询一个区间,遍历到的叶子一定是右儿子、右儿子、……、左儿子、左儿子。 反过来,值域连续的这样的若干节点也唯一对应一个区间。 所以右儿子给值域相邻的右、左儿子连边,左儿子只给左儿子连边,问题相当于最小路径覆盖(每个点可以被覆盖无限次,有 ...
分类:
其他好文 时间:
2020-07-29 21:36:48
阅读次数:
66
题意:有一$n$个点,$m$条边的双向图,每条边都有花费和流量,求从$1$~$n$的路径中,求$max\frac{min(f)}{\sum c}$. 题解:对于c,一定是单源最短路,我们可以用dijkstra,但是这个最小流量不是很好搞,但是题目所给的数据范围较小,所以我们可以直接枚举最小流量,然后 ...
分类:
其他好文 时间:
2020-07-17 19:42:27
阅读次数:
70
Introduction 最大流问题就是求出一个可行流量使得从 单源点 到 单汇点 的流网络中流量最大。 且满足如下约束: 流过边$e$的流量不超过$e$的容量$capacity$ 对于每一个顶点$node_{\neq source,sink} \quad incoming flow=outgoin ...
分类:
其他好文 时间:
2020-01-22 23:37:39
阅读次数:
104
一.无源汇有上下界可行流 1.假设所有边都流满下界,将原边流量变为上界-下界 2.发现有的点流量不守恒,这样我们就要给它补流或导流。 3.新建源点和汇点,对于在下界中的流 流入>流出 的点为它导出 流入-流出 的流,否则为其补上 流出-流入 的流。 4.在新建出的图中跑最大流,如果新加的所有边都满流 ...
分类:
编程语言 时间:
2020-01-19 12:40:34
阅读次数:
65
网络流主要解决三种问题:最大流、最小流和费用流。 最大流算法主要有三种:EK算法、Dinic算法、SAP算法。 本篇博客是关于SAP算法的。最坏的情况下,SAP算法将达到复杂度O(VE2)。 1 #include <iostream> 2 #include <cstdio> 3 #include < ...
分类:
编程语言 时间:
2019-11-23 19:55:31
阅读次数:
72
网络流主要解决三种问题:最大流、最小流和费用流。 最大流算法主要有三种:EK算法、Dinic算法、SAP算法。 本篇博客是关于Dinic算法的。最坏的情况下,Dinic算法将达到复杂度O(V2E)。 1 #include <iostream> 2 #include <cstdio> 3 #inclu ...
分类:
编程语言 时间:
2019-11-22 01:19:31
阅读次数:
66
1 #include <cstdio> 2 #include <cstring> 3 #include <queue> 4 using namespace std; 5 typedef long long ll; 6 const int maxn = 51000,maxm = 800000; 7 l ...
分类:
其他好文 时间:
2019-11-14 22:14:37
阅读次数:
59
这道题跟求最大流的时候差不多。 都是先构造可行流,然后判断是否可行, 可行的话,就利用残余流量,构造从汇点t跑到源点s的最大流, 如何求出答案呢。 在第一次求可行流的dinic后,跟求最大流的时候一样,从t到s是可行流的流量; 这个时候t到s的反向边,也就是s到t的流量就是t到s流的量(因为t到s定 ...
分类:
其他好文 时间:
2019-11-06 22:28:04
阅读次数:
106
(点击此处查看原题) 题意分析 给出n个结点,m条管道,每条管道存在最小流量和最大流量,而且每个结点的流入量等于流出流出量,问这n个结点和m条管道能否形成流量循环 解题思路 经典的无源汇有上下边界的可行流问题,因为每条边存在最低流量low和最大流量up,所以每条边都至少有low流量,我们为每个边都设 ...
分类:
其他好文 时间:
2019-08-24 00:05:46
阅读次数:
77
题面 http://uoj.ac/problem/389 题解 当我刚学欧拉回路的时候,刚刚把网络流学完,就知道欧拉回路的题可以用网络流来做,这道题就是啦。 可以说欧拉回路是一类特殊网络流的调整问题(和上下界网络流)差不多。 所以我曾经开过脑洞,有上下界最小流可以用费用流做,但是由于太慢被自己$D$ ...
分类:
其他好文 时间:
2019-08-14 09:39:04
阅读次数:
120