题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=51253【思路】 固定流量的最小费用流。 拆点,将u拆分成u1和u2,连边(u1,u2,1,0)表示只能经过该点一次。跑流量为2的最小费用流。【代码】 1 #inclu...
分类:
其他好文 时间:
2015-12-20 10:26:30
阅读次数:
204
题目大意:给一张带权线图,找出一条经过起点s和终点t的最小回路。题目分析:建立网络,以s为源点,t为汇点,另每条边的容量为1,单位费用为边权值。求最小费用流,增广两次后的最小费用便是答案。代码如下:# include# include# include# include# include# incl...
分类:
其他好文 时间:
2015-12-15 18:16:46
阅读次数:
404
bzoj1070: 把每个工人拆成汽车那么多个点,假如说 工人(i, j) 和 汽车k 连边,那就代表第i个工人倒数第j个修汽车k,那么这条边对以后的贡献就是k*time[i修k]。 1 #include 2 #define rep(i, a, b) for (int i = a; i = b;.....
分类:
其他好文 时间:
2015-12-15 14:07:04
阅读次数:
241
建图:从源点向第一层连边,第一层表示当天用掉多少餐巾,第二层表示当天需要多少餐巾,所以注意购买餐巾的边容量为无穷大,要从源点开始连向第二层的点,每天可能有剩余,在第一层内表示为流入第二天的节点。具体见代码,第一次写费用流,不知道模板对不对。。。#include #include #include #...
分类:
其他好文 时间:
2015-11-26 12:20:02
阅读次数:
149
只需要把费用流的Spfa中的小于号改一下就好了,对于题目中要求要飞过去在飞回来,只需要一律把边的方向定为从顶点编号较小的向顶点编号较大的,把顶点1和n的边的容量定为2,其余边为1即可。#include #include #include #include #include #include #inc...
分类:
其他好文 时间:
2015-11-26 10:46:46
阅读次数:
175
1、K种物品,M个供应商,N个收购商。每种物品从一个供应商运送到一个收购商有一个单位运费。每个收购商都需要K种物品中的若干。求满足所有收购商需求的前提下的最小运费。2、K种物品拆开来,分别对每种物品进行最小费用最大流计算。建立超级源点和超级汇点:超级源点流向M个供应商,容量为供应商的存储量,费用为0...
分类:
其他好文 时间:
2015-11-25 21:12:33
阅读次数:
341
1、Bellman-Ford#include#include#include#include#includeusing namespace std;const int maxn=1024;const int INF=0x3f3f3f3f;struct Edge{ int from,to,cap...
分类:
其他好文 时间:
2015-11-23 18:59:40
阅读次数:
136
和UVA - 1658 Admiral如出一撤,就是跑一个流量为2的最小费用流。主要来学习一下用dijkstra处理负边权来增广,主要思想是每个点都维护一个顶标h[v],叫做v的势。对于每个边ei(u,v)(u到v的有向边),修正它们的边权w[i] 为w'[i] = w[i] + h[u] - h[...
分类:
其他好文 时间:
2015-11-08 19:19:55
阅读次数:
229
题目(原文是日语): Google Code Jam区域赛上,坐在右前方的男人ID叫lyrically。东京大学时代的记忆中,记得有个朋友也用类似的ID。不过我的朋友都是萌妹子,我记忆中的 lyrically不仅算法扎实,封装也很强,能一下子给出问题的正解。比如,对我们写得不好的程序也能优化到AC....
分类:
其他好文 时间:
2015-11-06 12:58:09
阅读次数:
397
题意:给一个网络中某些边增加容量,增加的总和最大为K,使得最大流最大。费用流:在某条边增加单位流量的费用。那么就可以2个点之间建2条边,第一条给定边(u,v,x,0)这条边费用为0同时另一条边(u,v,K,1)费用为1,那么就可以通过限制在增广时相应的费用即可找出最大流个人觉得这样做的原因是每次增光...
分类:
其他好文 时间:
2015-11-01 21:00:24
阅读次数:
233