
网络流_最大流
文章平均质量分 78
jason_star
我要变强!
展开
-
【HDU】3572 Task Schedule (最大流 ISAP算法)
开始做网络流了。一开始的学习依然是无脑的,只能借鉴大神的博客。其实这道题蛮不错的。说是要对题目进行建模,从而转化成网络流的题目。从这道题来看,网络流看来对思维训练很有帮助啊。稍微说一下建模的想法吧。添加一个超级源点和一个超级汇点。将每个工程看成一个点。每一天都是一个点。一个工程对应的每一天都有一个流量为1,因为一天只能一个机器去完成一个单元。每一天到超级汇点流量为m,因为有原创 2015-04-06 00:09:45 · 549 阅读 · 0 评论 -
【HDU】 3416 Marriage Match IV(最大流+SPFA)
题目大意:让你找出有多少条没有交集的最短路。思路:先用spfa找出可行的边,然后给每条可行的边加上容量1.即表示这条边只能走一次。接下来跑一遍ISAP就可以得出答案。关于判断边可行的方法如下。先从头跑一遍spfa,得到起点到其他所有点的最短路径dis1再从尾跑一遍spfa,得到终点到其他所有点的最短路径dis2对于边u-v w假如dis1[u]+dis2[v]+w==d原创 2015-04-06 13:01:20 · 830 阅读 · 0 评论 -
poj 3281 Dining(网络流最大流+分点)
题目大意:有N种食物,和N种饮料.每头牛有喜欢的饮料和食物.问有多少头牛可以同时吃到自己喜欢的饮料和食物.思路:这道题主要在于建图问题.添加超级汇点和超级源点自然不用多说了.正确的建模:源点-->food-->牛(左)-->牛(右)-->drink-->汇点 (转载的)网上把这个叫做折点,不过我觉得交分点可能比较合适,使需要同时满足的条件都在一条路径上.#define _原创 2015-04-06 16:32:07 · 449 阅读 · 0 评论 -
HDU 3605 Escape(最大流+合并相同点)
思路:题目的模型就是简单的最大流.但是点数较多.直接建图的话,肯定超时.这边需要采用一定的技巧.由于m所以可以按照可以去的行星的情况进行合并相同点.能去的行星全部相同的就是同一个点,在建图的时候,流量就是这些人的数量就可以了.这样子的话,建图的点就可以缩小到1024个点.非常给力.#define _CRT_SECURE_NO_WARNINGS#include#inc原创 2015-04-06 19:50:53 · 484 阅读 · 0 评论 -
【HDU】 3081 Marriage Match II (最大流+并查集)
生和男生配对,有些女生相互是朋友,每个女生也可以跟她朋友所配对的男生配对每次配对,每个女生都要跟不同的男生配对。问最多能配对几轮。思路:这边需要用到并查集的思想,由于太久没有碰并查集了,所以看到并查集就只记得父亲节点这个东西了。看了题解,如何实现同一个朋友共享关系。他的一个想法是:当遇到X女孩的时候,枚举女孩,假如两个女孩的祖先相同,则意味着这两个女孩是朋友,则另外一个女孩就可原创 2015-04-07 23:17:26 · 449 阅读 · 0 评论 -
【HDU】 2883 kebab(最大流+时间段离散化)
思路:这道题目应该说看懂题意很重要。看懂之后就很简单了。 有一个烧烤机,每个单位时间最多能烤 m 块肉,现在有 n 个人来买烤肉,每个人到达时间为 si,离开时间为 ei,点的烤肉数量为 ci,点的烤肉所需烘烤时间为 di,其实这边的ci和di有点描述的不清楚。明白一点的描述应该说的是,点的烤肉体积为ci,需要等待的时间为di。 每个人要烤的肉可以分成若干份在原创 2015-04-07 21:08:54 · 517 阅读 · 0 评论 -
HDU 3998 Sequence(最大流+最长上升子序列)
题目大意:一个序列,让你求出最大上升子序列是多少,然后有多少个最长上升子序列(即每一个元素都不相同)思路:用nlogn的方法求出最长上升子序列.这边讲一下网络流的建图模型:添加超级源点和超级汇点.每一个序列长度为1的元素与源点容量为1;并且长度为x与x-1的元素有一条容量为1的边.表示可以属于同一个序列.这边我是用vector存下每个长度的元素编号,下次直接拿出来建边就可以原创 2015-04-08 21:15:11 · 551 阅读 · 0 评论