图论-最小费用最大流
文章平均质量分 78
iHge2k
专注数据结构和算法
展开
-
uva 11381(神奇的构图、最小费用最大流)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=29821思路:首先拆点,每个字符对应的位置拆成i和i+len,然后源点和i连边,容量为1,花费为0,i+len与汇点连边,容量为1,花费为0,然后就是对于那些在P中的字符串连边,容量为1,花费为g[u][v],最后跑最小费最大流即可,然后答案就是len-flow,原创 2014-05-26 18:06:41 · 444 阅读 · 0 评论 -
hdu 4411(最小费用流)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4411思路:这道题建图比较难想,首先是建立超级源点和超级汇点,那么由于有K个警察,于是vs与0连边,容量为k,费用为0,因为这K个警察不一定都出去,也就是不一定是最大流,于是0和vt连边,容量为k,费用为0。然后就是拆点建图了:(1):0到i连边,容量为1,费用0到i的最短路,表示去抓城市i的小原创 2014-05-26 18:05:18 · 342 阅读 · 0 评论 -
zoj 3362(最大费用)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3904思路:费用流的题,增加一个超级源点和一个超级汇点,然后就是连边了,对于每个城市,与汇点连边,容量为inf,花费(这里指收益)为商品在该城市的价值,然后对于图中给定的边,容量为cap,花费为-cost(负数代表花费),最后就是源点与城市1连边了,然后就是跑费用流原创 2014-05-26 18:07:02 · 478 阅读 · 0 评论 -
hdu 4067(最小费用最大流)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4067思路:很神奇的建图,参考大牛的:如果人为添加t->s的边,那么图中所有顶点要满足的条件都是一样的了,我们以此为目的来建图。对于每条边,我们只有两种操作,要么保留要么删除,那么先假设两种操作都能满足条件,我们就可以选择花费小的操作来执行,最后再根据实际情况调整。首先不加入任何边,在添加或原创 2014-05-26 18:05:23 · 347 阅读 · 0 评论 -
poj 3422(最小费用最大流)
题目链接:http://poj.org/problem?id=3422思路:求从起点到终点走k次获得的最大值,最小费用最大流的应用:将点权转化为边权,需要拆点,边容量为1,费用为该点的点权,表示该点的权值只能获取一次,另外,应该连一条容量为inf,费用为0的边,因为每条边都可以走多次。另外就是增加源点和汇点了,源点与起点连容量为k,费用为0的边,表示可以走k次,同理终点与汇点也如此。然后就是求原创 2014-05-26 18:05:08 · 307 阅读 · 0 评论 -
poj 2135(最小费用最大流)
题目链接:http://poj.org/problem?id=2135思路:把路长看作费用,然后如果u,v之间有边,就连u->v,v->u,边容量为1,表示每条边只能走一次,最后就是源点与1连边,容量为2,费用为0,n与汇点连边,容量为2,费用为0,表示增广2次。这样就转化为为最小费用最大流问题来求解了。 1 #include 2 #include 3 #includ原创 2014-05-26 18:04:28 · 469 阅读 · 0 评论 -
hdu 2485(最小费用最大流)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2485思路:题目的意思是删除最少的点使1,n的最短路大于k。将点转化为边,容量为1,费用为0,然后就是对于那些有道路的城市之间连边,若(u,v)有边,则连边(u+n)->v,容量为inf,费用为花费的时间1,然后就是跑最小费了,若dist[vt]>k,则返回false,最后输出的flow就代表要删除原创 2014-05-26 18:05:16 · 462 阅读 · 0 评论 -
hdu 4322(最大费用最大流)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4322思路:建图真的是太巧妙了!直接copy大牛的了:由于只要得到糖就肯定有1个快乐度,在这一点上糖的效果是等效的。所以只要考虑有特殊效果的糖的分配就可以了。当快乐的程度超过b[i]时,多出来的部分就浪费了,为了使浪费尽可能少,我们用费用流加以控制,当获得最大费用最大流的时候,这是的费用的利原创 2014-05-26 18:05:20 · 298 阅读 · 0 评论 -
hdu 3667(拆边+最小费用最大流)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3667思路:由于花费的计算方法是a*x*x,因此必须拆边,使得最小费用流模板可用,即变成a*x的形式。具体的拆边方法为:第i次取这条路时费用为(2*i-1)*a (i 1 #include 2 #include 3 #include 4 #include 5 #原创 2014-05-26 18:06:03 · 467 阅读 · 0 评论 -
poj 3680(最小费用最大流)
题目链接:http://poj.org/problem?id=3680思路:因为N 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define MAXN 444 8 #define MAXM 444444 9 #def原创 2014-05-26 18:05:10 · 355 阅读 · 0 评论