
网络流
文章平均质量分 60
ahfywff
这个作者很懒,什么都没留下…
展开
-
poj 1273 Drainage Ditches (第一道网络流~)
网络流入门题,注意可能有重边。 #include #include #include #include using namespace std; const int maxn = 210; int c[maxn][maxn], pre[maxn], f[maxn][maxn]; int n, m, add; bool bfs() { queue Q; memset原创 2012-02-05 11:26:15 · 618 阅读 · 2 评论 -
poj 3469 Dual Core CPU (最小割->最大流)
这题不难,很容易建立最小割模型,然后就是最大流啦。顺便贴上我的SAP模板,此模板是我参考了网上众牛的模板写的,集各种优化于一身。#include #include #include #include #include using namespace std; const int maxn = 20010; const int maxm = 999999; const int oo =原创 2012-02-06 15:44:45 · 628 阅读 · 0 评论 -
poj 3281 Dining (最大流)
POJ 3281 Dining 这题WA了两次。刚开始我建的图是: s→食物→牛→饮料→t ,但这样不能保证每头牛最多只得到一种食物和一种饮料,WA了。后来又想了一下,按照以下方式建图:s→食物→牛→牛→饮料→t,这样就能保证每头牛最多只得到一种食物和一种饮料。心想这回肯定能AC的,谁知提交上去还是一个WA。我又仔细检查了一下代码,惊奇的发现是数组开小了,这个真不应该~ #include原创 2012-02-07 08:51:25 · 1169 阅读 · 0 评论 -
hdu 3572 Task Schedule
~~最大流~~ 建图:把每个任务和每一天都看做一个点,添加源点和汇点。源点与每个任务之间连一条边,容量为完成该任务所需处理次数。若第i个任务可以在Si至Ei天处理,则由该任务向这些天分别连一条边,容量为1,表示此任务每天只能被处理一次。最后,从每一天连一条到汇点的边,容量为机器数M,表示每天可以处理M个任务。若求出的最大流等于所有任务需要处理的次数之和,说明能完成任务;否则,不能完成任务。 #原创 2012-02-07 19:39:06 · 2749 阅读 · 1 评论 -
poj2526 Minimum Cost (费用流)
题意:有M个供应商,N个售货商和K种商品。给出每个售货商需要的每种商品的数量,每个供应商拥有的每种商品的数量以及将第k种商品从第i个供应商运到第j个销售商所需的费用。若销售商的需求能得到满足,输出所需的最小费用;否则,输出-1。 刚开始,我把每个供应商和销售商拆成2K个点,结果超时了。后来,对于每种商品分别建图和求最小费用,累加既得所需总费用,最终AC。 首先,先统计每种商品的原创 2012-02-24 12:51:45 · 673 阅读 · 0 评论 -
poj1149 PIGS (最大流)
题意:有m个猪圈和n个顾客,每个猪圈里都有一定数量的猪,每个顾客都想购买一定数量的猪。每位顾客可以打开其中某些特定的猪圈,然后买猪,该顾客打开的猪圈里的猪可以被重新分配。求最多能卖出多少头猪。 分析:把每个顾客和每个猪圈都看成一个点,添加源点S和汇点T。源点S与每个顾客之间添加一条边,容量为该顾客要购买的猪的数目。每个猪圈与汇点T之间添加一条边,容量为该猪圈初始的猪的数量。若第j位顾客与原创 2012-02-26 14:29:27 · 345 阅读 · 0 评论 -
poj3680 Intervals
先把区间端点离散化为n个点,再添加源点s和汇点t。s向第一个点连边,容量为k,费用为0;第i个点向第i+1个点连边,容量为oo,费用为0;第n个点向t连边,容量为k,费用为0。假如某个区间端点离散成a,b,则由a向b连边,容量为1,费用为-w(w为该区间的权值)。然后对该网络求最小费用最大流~~#include #include #include #include #include #i原创 2012-02-29 22:22:49 · 952 阅读 · 0 评论