图论-----------网络流
SingleK
这个作者很懒,什么都没留下…
展开
-
CodeForces 546E - Soldier and Traveling(最大流)
题目链接 https://cn.vjudge.net/problem/CodeForces-546E【题意】 给定一张n个结点,m条边的无向图,再给定n个整数a[1],a[2]…a[n]代表初始时每个结点上驻守的士兵数量,每个结点的士兵可以在原地不动,也可以移动到与当前结点邻接的其他结点上去,但只能移动一次。现在问,能否通过合理的移动使得最终这n个结点驻守的士兵数量分别为b[1],b[2]…...原创 2018-04-13 20:59:48 · 262 阅读 · 0 评论 -
UVA 10735 - Euler Circuit(最大流+欧拉回路)
题目链接 https://cn.vjudge.net/problem/UVA-10735【题意】 给出一个V个点E条边的混合图(有的是有向边,有的是无向边)求出它的一条欧拉回路,如果没有输出无解信息,输入保证忽略边的方向后图是连通的(V<=100, E<=500)【思路】 看了书上的讲解和其它题解感觉这种做法太强了,用最大流来调整结点的入度和出度,真的想不到,贴个题解 ...原创 2018-08-29 19:20:48 · 420 阅读 · 0 评论 -
UVA 1515 - Pool construction(最小割)
题目链接 https://cn.vjudge.net/problem/UVA-1515【题意】 输入一个h行w列的字符矩阵,草地用’#’表示,洞用’.’表示,可以把一个草地换成洞,费用为d,也可以把一个洞换成草地,费用为f,最后要在草地和洞之间修建围栏,单位围栏的费用为b,整个矩阵的边界必须是草地,求最小花费.(2<=w,h<=50,1<=d,f,b<=10000)...原创 2018-08-29 15:48:31 · 177 阅读 · 0 评论 -
UVALive 3353 - Optimal Bus Route Design(二分图最小权匹配)
题目链接 https://cn.vjudge.net/problem/UVALive-3353【题意】 给你n个点(n<=100)的有向带权图,你要找到n个有向环,使得每个点恰好属于一个环,要求权值之和尽量小,注意即使边(u,v)和(v,u)都存在,它们的权值也不一定相同【思路】 每个点属于一个有向圈,意味着每个点有唯一的后继,根据这个性质来建图,每个点拆成一个X结点和一个Y结点...原创 2018-08-20 21:34:46 · 186 阅读 · 0 评论 -
UVA 1658 - Admiral(最小费用流+拆点)
题目链接 https://cn.vjudge.net/problem/UVA-1658【题意】 给出v (v<=1000) 个点和e (e<=10000)条边的有向图,求1~v的两条不相交(除了起点终点外没有公共点)的路径,使得权和最小。【思路】 将一个结点拆成两个结点,由真结点连一条容量为1费用为0的边到假结点,这样之后当我们加边的时候,令起始结点为假结点,终止点为真结点...原创 2018-08-20 11:27:58 · 190 阅读 · 0 评论 -
UVA 11082 - Matrix Decompressing(最大流)
题目链接 https://cn.vjudge.net/problem/UVA-11082【题意】 对于一个R行C列的正整数矩阵(1<=R,C<=20)设A[i]为前i行的所有元素和,B[i]为前i列的所有元素和。已知R,C和数组A,B,找出一个满足条件的矩阵,并且矩阵中的元素必须是1~20之间的正整数,输入保证有解,输出任意解即可【思路】 将行和列抽象成结点,每行对应一个X...原创 2018-08-19 22:53:59 · 150 阅读 · 0 评论 -
UVA 753 - A Plug for UNIX(最大流)
题目链接 https://cn.vjudge.net/problem/UVA-753【题意】 有若干个电器设备需要不同的适配器才能接上电源,现在你要让尽可能多的设备接上电源。首先你手中有n个适配器和适配器的型号,再告诉你有m个电器和他们分别对应的适配器的型号,最后还有一个商店提供k个不同类型的转换器,转换是单向的A B表示能把A接口转换成B接口,转换器数量是没有限制。求最少有多少设备无法连接...原创 2018-08-19 20:13:57 · 139 阅读 · 0 评论 -
最小费用最大流MCMF算法(模板)
计算最小费用最大流,网络中可以有负边,但不能存在负权圈。如果要固定流量k,可以在增广的时候检查一下,在flow+a&amp;gt;=k的时候只增广k-flow单位的流量,然后终止程序#include&amp;lt;bits/stdc++.h&amp;gt;using namespace std;const int inf=2e9;const int maxn=10050;struct Edge{ ...原创 2018-07-29 13:46:57 · 1645 阅读 · 0 评论 -
网络流最大流ISAP算法(模板)
最大流算法的ISAP算法,Maxflow返回最大流的值#include&amp;amp;lt;bits/stdc++.h&amp;amp;gt;using namespace std;const int inf=2e9;const int maxn=10050;struct Edge{ int from,to,cap,flow; Edge(int u,int v,int c,int f):from(...原创 2018-07-29 12:33:35 · 371 阅读 · 0 评论 -
网络流最大流Dinic算法(模板)
最大流算法的Edmonds-Karp算法,Maxflow返回最大流的值#include&lt;bits/stdc++.h&gt;using namespace std;const int inf=2e9;const int maxn=10050;struct Edge{ int from,to,cap,flow; Edge(int u,int v,int c,in...原创 2018-07-29 12:20:36 · 379 阅读 · 0 评论 -
网络流最大流Edmonds-Karp算法(模板)
最大流算法的Edmonds-Karp算法,实际用的不多因为复杂度比Dinic高,把流初始化为零流,Maxflow返回最大流的值,同时在算法结束时所有已标号结点(a[u]&amp;gt;0的结点)构成集合S,剩余结点构成集合T,则(S,T)是图的最小割#include&amp;lt;bits/stdc++.h&amp;gt;using namespace std;const int maxn=10050;co...原创 2018-07-29 11:14:02 · 198 阅读 · 0 评论 -
POJ 3422 - Kaka's Matrix Travels(最小费用流)
题目链接 https://cn.vjudge.net/problem/POJ-3422【题意】给出一个N*N的矩阵,然后从左上角走到右下角,每次走只能是往下或者往右走,走一次就将这个位置上的数字加到sum和中,然后这个位置的数字置为0。从左上到右下走K次,问最大和。【思路】最小费用最大流,把每一个位置拆成两个点,代价为该位置的值,容量为1(代表走一次就将其置为0)。然后前一个点与后一个点再...原创 2018-10-18 15:25:35 · 147 阅读 · 0 评论