因为直接利用费用流可能会导致经过相同的点,所以利用拆点法 除了首尾结点之外其他的每一个结点都拆成两个结点,并且两个结点之间连一条容量为1,费用为0的边,这样做的理由也很简单 一旦一个节点用过之后,下次再经过这个节点之后再也没有办法扩展到其他节点了 ...
分类:
其他好文 时间:
2018-12-02 12:11:06
阅读次数:
202
const int maxn = 2000 + 10; const int INF = 1000000000; struct Edge { int from, to, cap, flow, cost; Edge(int u, int v, int c, int f, int w):from(u),t... ...
分类:
其他好文 时间:
2018-12-01 23:36:05
阅读次数:
239
拆点法是很套路的方法,将一个点拆为i和i',连边,cap为1,cost为0. 编号:点2~n-1拆成弧i->i',前者编号为0~n-1,后者编号为n~2n-3 (i+n-2) 本题拆点后从1-v求流量为2的最小费用流 while(flow < flow_limit && BellmanFord(s, ...
分类:
其他好文 时间:
2018-10-27 14:49:43
阅读次数:
266
/** 题目:poj3422 拆点法+最小费用最大流 链接:http://poj.org/problem?id=3422 题意:给定n*n的矩阵,含有元素值,初始sum=0.每次从最左上角开始出发,每次向右或者向下一格。终点是右下角。 每经过一个格子,获取它的值,并把该格子的值变成0.问经过k次从左... ...
分类:
其他好文 时间:
2017-07-23 15:29:24
阅读次数:
180
/** 题目:Risk UVA - 12264 链接:https://vjudge.net/problem/UVA-12264 题意:给n个点的无权无向图(n0则此点归你且上面有ai个属于你的士兵。 保证至少有一个属于你的点与敌方的点相邻。你可以让你的每个士兵最多移动一次 ,每次可以待在原地或者去到... ...
分类:
其他好文 时间:
2017-07-20 20:15:15
阅读次数:
202
/** 题目:UVA1349 Optimal Bus Route Design 链接:https://vjudge.net/problem/UVA-1349 题意:lrj入门经典P375 给n个点(nv有向边。 左边一侧全是u,右边一侧全是v。 u与若干个v有指向关系u->v。 每一个点都扮演着u,... ...
分类:
其他好文 时间:
2017-07-16 18:19:53
阅读次数:
133
/** 题目:UVA1658 Admiral 链接:https://vjudge.net/problem/UVA-1658 题意:lrj入门经典P375 求从s到t的两条不相交(除了s和t外,没有公共点)的路径,使得权值和最小。 思路:拆点法。 除了s,t外。把其他点都拆成两个。 例如点A,拆成A和... ...
分类:
其他好文 时间:
2017-07-16 15:01:17
阅读次数:
184
无冲突 输出 0 洛谷P1525 关押罪犯 并查集 用拆点法 将一个点拆成两份 一个点和 x 的朋友相连 一个点和 x的敌人相连 若 x 与 y 是敌人 因为只有两个阵营 所以满足敌人的敌人就是朋友 然后 x 连向 y 的敌人 y 连向 x 的敌人 因为这是双向边 所以 y的朋友就是x的敌人就不用连 ...
分类:
其他好文 时间:
2017-06-24 11:19:29
阅读次数:
193
https://vjudge.net/problem/UVA-1660 题意:给出一个无向图,求出点连通度。即最少删除多少个点,使得图不连通。 思路: 如果求线连通度的话,直接求个最大流就可以了。但这题我们删除的是点,用拆点法来使点具有流量的性质,把每个点都拆分为两个点,容量为1,表示可以使用一次。 ...
分类:
其他好文 时间:
2017-03-05 17:39:01
阅读次数:
310