随笔分类 - ACM--图论--网络流
摘要:How Many to Be Happy? (最小生成树进一步理解 + 最小割) 最小生成树:MST性质(学习博客:here) 题解:我们想让某一条边一定是最小生成树中的边,只要找到任意一种点集的分配,使得这条边的两个顶点在不同的分配中且边权是连接这两个分配的所有边中最小的那一个。显然只有边权比它小
阅读全文
摘要:题目: 题解: 这题的掌握网络流中的最大流相关知识。 因为k<=100,那么我们可以把1~k的数看成点,而下面的药水便可以看做点之间有流量的边,那么题目的要求便成了1~k的这些点,能有多少流量通过给出的边流到k点。 因为1~k的数都可以看做起点,所以我们创建个源点与它们各连一条边,流量便是由多少种高
阅读全文
摘要:网络流二·最大流最小割定理 AC_Code: 1 #include <bits/stdc++.h> 2 #include <ctime> 3 #include <algorithm> 4 #include <random> 5 using namespace std; 6 typedef long
阅读全文
摘要:基本概念: 1.割:对于一个网络流图\(G=\left ( V,E\right )\),其割的定义为一种 点的划分方式:将所有的点划分为\(S\)和\(T=V-S\)两个集合,其中源点\(s\in S\),汇点\(t\in T\) 2.割的容量:定义割\(\left ( S,T\right )\)的
阅读全文
摘要:Dining 题意:有N头牛,F种食物,D种饮料,每头牛都有喜欢的食物和饮料,每种饮料和食物只能分配给一头牛。最多有多少头牛能同时得到自己喜欢的食物和饮料。 思路:加源点和汇点。源点与食物,饮料和汇点的边容量都是1。一头牛拆分成两个点,两点之间的容量为1。喜欢的食物和饮料跟牛建条边,容量为1。这样完
阅读全文
摘要:Drainage Ditches(最大流入门) EK+邻接矩阵: 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 #define rep(i,first,last) for(int i=first
阅读全文
摘要:什么是网络流? 在生活中,什么比较像图呢?答案一定不少吧,其中我想举的例子就是水管了。水管相互之间都是连通的,会构成一张图。从供水的一端出发,水必然沿一个固定的方向流向最终的汇聚点,也就是有向图。同时,在条件的限制下,水管有粗有细,不同的水管单位时间内的流水量限制是不同的,可以看做是带权图。运输货物
阅读全文