网络流
zephyr_pro
人所有的愤怒全部来自自己的无知。
展开
-
dinic求最小割边集 UVA 10480
根据最大流最小割原理可知: 在数值上 : 最小割=最大流 这样最小割的数值就可以用dinic跑出来,然后如果要是求最小割边集的话,这样的方法就需要稍加改进。 那么我们需要在最大流之后把残余网络中的点重新分为两类,一类为源点组,一类为汇点组,通过从s开始的dfs找到能够到达的点与源点一组,否则与汇点一组,这样在扫一遍所有的边,判断边的两个点是否分别在这两组,如果是的话,那么这条边就是最小割边集...原创 2018-05-28 21:45:13 · 663 阅读 · 0 评论 -
E - Minimum Cost POJ - 2516
最小费用最大流,是把最大流算法找增广路的的bfs过程改为spfa找最短路的过程,最短路的权为该路的花费,每一次都找最小花费的路,然后形成最大流,因为bfs找增广路的过程无论怎么找最大流的值是不会变得,所以每一次找最小花费的路不会影响最后的最大流。 其次网络流最难的在于模型的构造,拆点建图,构造超级源点和超级汇点。 POJ-2516 题意: 有k个商品,m个供货商,n个专卖店,问m个仓库怎么...原创 2018-05-24 21:08:10 · 201 阅读 · 0 评论 -
M - Escape HDU - 3605 状态压缩+最大流
题意:世界末日,地球上有n个人,现有适合人类居住的有m个星球,每个人都有自己想要去的星球,问在满足每个人的需求的情况下能不能把所有的人全部救走。 算法: TLE思路一: 根据题意和直觉来讲,确实是最大流,超级源点到每个人连线,再从每个人到他想要的星球连线,然后这样下来最复杂就会有1e6条边,dinic跑下来肯定会T,然后就去搜了题解有了第二种解法 TLE代码: #include ...原创 2018-05-26 16:29:40 · 183 阅读 · 0 评论 -
G - Gasoline Gym - 101908G[二分最大流]
题意:给出R个提供点,P个接收点,每个接收点都要接收满,还有一个运输的时间,问最小时间能够完成所有的运输。 题解:首先很容易想到费用流,当然T了O(V∗E∗f)O(V * E * f)O(V∗E∗f),比赛结束后听说是二分+最大流,一下就名白了,首先每次都必须要满流,所以我们只要限制时间即可,限制时间加边,跑最大流,如果最大流不是满流,那么就不满足,否则满足条件二分即可。 code:code:...原创 2018-10-10 16:19:13 · 320 阅读 · 0 评论 -
1001: [BeiJing2006]狼抓兔子[dinic网络流]
现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: 左上角点为(1,1),右下角点为(N,M)(上图中N=4,M=5).有以下三种类型的道路 1:(x,y)<>(x+1,y) 2:(x,y)<>(x,y+1) 3:(x,y)<==>(x+1,y...原创 2018-10-29 20:54:02 · 157 阅读 · 0 评论