
图论——网络流
文章平均质量分 78
dumeichen
这个作者很懒,什么都没留下…
展开
-
poj 1087 最大流(让尽可能多的电器能够供电)
题意:有插座和电器两种物品。首先有n种插座,n种插座用字符串表示,这n种插座可以理解为是插在电源上的插座。然后有m个电器,现在电器要充电,电器用字符串表示,每个电器都有自己可以插(且只可以插)的插座(这个插座可以不是那n个插在电源上的插座,可以是其他的插座)。现在有k个信息,s1 s2代表s1插座可以插到s2插座上去,这里类似于将插头转换了一下,这些s1与s2也可以不是那n个插在电源上的插座。给出原创 2015-03-16 23:35:11 · 910 阅读 · 0 评论 -
poj 1815 dinic+枚举 (node-disjoint path个数)
题意:给定一个无向图,固定源汇点s和t,问至少删除多少个点使得s和t不连通(或者有多少条s-t点不重路径)。要求输出解(如果解为:A1, A2, ..., At (1 思路:拆点转化成最小割-最大流。每个点拆为两点j和j+n,之间连一条容量为1的弧(j,j+n),保证每个人最多被删掉一次。因为s和t必不删除,所以(s,s+n)和(t,t+n)容量都是无穷。如果i能与j联系,则在i+n与j之间连原创 2015-10-13 20:35:20 · 756 阅读 · 0 评论 -
poj 3614 dinic/贪心 (涂防晒霜)
题意:有C个奶牛去晒太阳 (1 思路:一个显然的思路是用最大流来做,牛作为一部,防晒霜作为一部,防晒霜适用于牛则连边,流量为1。防晒霜到汇点流量为该防晒霜的数量,求最大流。#include #include #include #include #include #include using namespace std;#define clc(s,t) memset(s,t,s原创 2015-09-01 17:42:53 · 697 阅读 · 0 评论 -
poj 3189/2455 dinic(最相近的舒服程度)
题意:给定n头牛,m个牛棚,每个牛都有对m个牛棚的一个排序,表示自己住在其中的舒适程度。通过n*m矩阵给出,每一行是一个1...m的排列。然后给出每个牛棚的容量,即最大装载牛的数量。现在要找出一个牛棚居住的安排,让每头牛都有牛棚呆,并且让舒适度最小的和最大的差值最小(即尽量让所有牛的舒服程度差不多)。思路:这种套路的题做的比较多了,就是二分答案+最大流构图判断。这题同样是二分最小差值,然后对于原创 2015-09-09 16:13:23 · 316 阅读 · 0 评论 -
poj 2391 最大流+floyd+二分(转移避难)
题意:无向图中给出n个点,m条边,每个点给定两个值a和b,a表示当前在该点的人数,b表示该点的人数限制。之后给定m条边以及边上的权值。问是否所有人都能通过转移找到避难处,如果能,输出最短的移动距离。思路:先用floyd求出任意两点之间的最短距离,然后二分答案。对每个二分值建立网络流进行求解(整个思路类似2112挤奶那道题)。建图时要拆点。对每个点x,拆成x'和x'',然后x'和x''之间有一条原创 2015-08-06 20:53:25 · 429 阅读 · 0 评论 -
poj 2112 floyd+最大流(所有牛挤奶走的最长路的最小值)
题意:给定K台挤奶机器和C头牛,每台挤奶机只能供M头牛挤奶。现在给出(K + C)*(K + C)的距离矩阵,表示第i个物体到第j个物体之间的路径长度,若此值为零,则说明其间不可直接到达。问怎么安排这C头牛到K台机器挤奶,使得需要走最长路程到挤奶机器的奶牛所走的路程最少,并求出这个最小值。思路:首先利用Floyd算法求出每个奶牛到每个挤奶机的最短距离。此后二分答案,先假定一个最大距离的的最原创 2014-07-29 17:22:28 · 717 阅读 · 0 评论 -
poj 2135 最小费用最大流(从1到n往返不走重复路的最小距离)
题意:有n个景点,一个人要从1号景点走到n号景点,再从n号景点走到1号(回来的路不能重复,不一定走完所有景点,只要求从1到n即可),给你一些景点之间的路的长度(双向),问你最短需要走多少路才能回来原创 2014-07-30 15:31:19 · 768 阅读 · 0 评论 -
poj 1698 二部图多重最大匹配(拍电影)
题意:某演员拍n部电影,规爱丽丝每部电影在每个礼拜只有固定的几天可以拍电影,只可以拍前面w个礼拜,并且这部电影要拍d天,问爱丽丝能不能拍完所有的电影思路:原创 2014-07-27 18:07:19 · 589 阅读 · 0 评论 -
poj 1459 最大流(最大消费电量)
题意:有三种节点:发电站,先肥皂思路:原创 2014-08-07 16:58:02 · 392 阅读 · 0 评论 -
poj 3281 最大流(牛吃喝的最大数量)
3281原创 2014-07-17 15:37:45 · 430 阅读 · 0 评论 -
poj 2396 有下界的最大流(填充矩阵)
题意:思路:原创 2014-08-03 10:55:33 · 510 阅读 · 0 评论 -
poj 2195 最小费用最大流(小人回家)
题意:给定若干小人(用‘m’表示)和若干房子(用‘H’表示),已知小人的数量和房子的数量相同,一个房子只能容纳一个小人。问使得所有小人进入房子中走的最少距离是多少。思路:最小费用最大流。小人和房子为顶点。每个小人i到房子j都连边,容量为1,费用为进入房子所需要的距离。最后再建立一个源点和一个汇点,源点连到所有的小人节点上,所有的房子节点连接到汇点上,这些边费用为0,容量为1.原创 2014-07-30 19:39:36 · 605 阅读 · 0 评论 -
poj 1273 最大流(Ford-Fulkerson算法和Dinic算法分别实现)
题意:最大流模板原创 2014-07-10 16:45:57 · 676 阅读 · 0 评论 -
poj 2516 最小费用最大流(从不同仓库运送不同货物给不同客户)
题意:有N个客户,M个仓库,和K种货物。已知每个客户需要每种货物的数量,每个仓库存储每种货物的数量,每个仓库运输各种货物去各个客户的单位费用。判断所有的仓库能否满足所有客户的需求,如果可以,求出最少的运输总费用。思路:原创 2014-07-31 17:01:42 · 640 阅读 · 0 评论 -
poj 3436 最大流+拆点(安装电脑)
题意(参考北京大学郭wei):思路:原创 2014-08-01 15:27:24 · 479 阅读 · 0 评论 -
poj 3469 最大流dinic(双核CPU)
题意:有一台双核电脑,给多个任务,每个任务可以在两个核之一运行。分别给出每个任务在第一个核和第二个核上运行的消耗。后面的m行输入是给出两个任务在两个不同核上运行需要付出的额外消耗。问将所有任务做完所需要的最小耗费。思路:把每个任务作为节点,在超级源点与任务间的连一条边,其容量为给任务在核1上运行的消耗,在该任务节点与超级汇点之间连一条边,容量为该任务在核2上运行的消耗。在任务之间连接无向边原创 2015-04-10 15:08:00 · 415 阅读 · 0 评论 -
poj 1966 最大流求点连通度
题意:给定一个无向图,求最少删去多少个点可以使图不连通。思路:根据Menger定理(图的连通度为k,则任意点间必有k条不相交路径),这样建图,首先将每个点拆成两个点,每个点可以表示成i与i+n。那么有向边的容量为1,如果i与j相邻,那么有有向边==INF。然后枚举源点和汇点求最大流。如果最大流都是INF,那么代表这个图是一个完全连通图,最小割点集为n;否则就输出最大流。此题不枚举点对,固定原创 2015-03-19 09:51:21 · 668 阅读 · 0 评论 -
poj 2914 全局最小割(stoer_wagner算法)
来自文章:A Simple Min-Cut Algorithm。作者:MECHTHILD STOER,FRANK WAGNER。(看了一遍原文,想记录下来,看到http://www.cnblogs.com/ylfdrib/archive/2010/08/17/1801784.html 上有简介就摘过来了)算法基于这样一个定理:对于任意s, t ∈ V ,全局最小割或者等于原图的s-t 最小割原创 2015-10-14 19:33:38 · 478 阅读 · 0 评论