网络流
文章平均质量分 82
满赋诸机
这个作者很懒,什么都没留下…
展开
-
USACO-Section 4.2 The Perfect Stall (二分图最大匹配[匈牙利算法[DFS]||网络流[Ford-Fulkerson]])
解法一:匈牙利算法[DFS] O(nm)匈牙利算法专门用于部图的匹配,所以速度极快,全部test都是0.00s大致思路:枚举n头奶牛为起点,若找到一条增广路径(终点为未匹配,且奇数边均不在原匹配中,偶数边均在原匹配中),则答案+1DFS实现找增广路径:dfs参数是i表示奶牛,枚举奶牛喜欢的牛棚,若牛棚不在当前增广路径中,则将其“纳入”增广路径(不一定出现在增广路径中,失败时不必再除去,因为当前状况下就失败,后面的状况不会更好,算作剪枝),若枚举的牛棚未被占据 或 以占据该牛棚的牛为起点时存在一条增广原创 2016-04-17 14:03:50 · 974 阅读 · 0 评论 -
POJ-3281 Dining (最大流[Ford-Fulkerson])
首先,一头牛必须吃到一种食物,喝到一种饮料才算数,所以食物和饮料同时连到一头牛身上是不可以的(可以看做并联吧),然后就想到拆点,但是拆点后怎么连都还是是并联,完全没想到换一下顺序...最终还是看了一下思路:牛拆成两个点牛1和牛2,牛1到牛2有权值为1的边(保证一头牛只计入一次),源点到食物有权值为1的边(保证一种食物只用一次),食物到牛1有权值为1的边,牛2到饮料有权值为1的边,饮料到汇点有权值为1的边(保证一种饮料只用一次)然后就可以开心的跑最大流了原创 2016-05-14 00:05:18 · 416 阅读 · 0 评论 -
POJ-1459 Power Network (最大流[Ford-Fulkerson])
添加一个虚拟源点和一个虚拟汇点,添加源点到生产者的边(权值为生产者能生产的能量),添加消费者到汇点的边(权值为消费者能消费的能量),则转化为最大流模版题。刚开始用STL库的queue和priority_queue,结果都超时了,第一次被STL的慢坑住了。。。换成数组模拟的队列800ms AC原创 2016-05-07 16:44:10 · 622 阅读 · 0 评论 -
USACO-Section 4.2 Drainage Ditches (最大流[Ford-Fulkerson])
看了前面的算法介绍和网上的算法讲解,明白了网络流的求法,然后按照算法写了一遍用bfs找增广路径,寻找增光路径时找当前路径流量最大的一条,然后进行图的更新,直至无法到达汇点原创 2016-04-17 12:19:05 · 395 阅读 · 0 评论 -
POJ-3436 ACM Computer Factory (最大流[Ford-Fulkerson])
初看题目,感觉非常难懂,也很难想到最大流,手动跑了几组数据后,发现题目就是求从p元组(0,...,0)到p元组(1,...,1)的最大流,然后就可以建图跑最大流即可首先,将每台机器的输入输出分别看成1个点,则这两点之间存在流量为q的有向边其次,添加可能会添加的边,即将各机器的输出与其他机器的输入比较,如果输出符合输入标准,则添加流量为无穷的边然后跑最大流即可,注意每次只记录添加的边即可最后直接输出结果刚开始统计路径的方法有点问题,但是随机了很多数据都找不出错,最后终于找到一组数据原创 2016-05-09 17:01:48 · 834 阅读 · 0 评论