网络流
文章平均质量分 50
陌离将离
这个作者很懒,什么都没留下…
展开
-
hdu-1532 基础最大流 EK
题意:n条关系,m个节点,每条关系由三个字母c,s,e组成代表c节点到s节点的流量为e,问流到节点n最大流量是多少链接:hdu - 1532#include <iostream>#include <algorithm>#include <cstdio>#include <cmath>#include <cstring>#incl...原创 2018-04-11 14:36:02 · 145 阅读 · 0 评论 -
poj - 3436 最大流dinic + 拆点 + 输出路径
题意:第一行给你P和N, P表示配件的个数, N表示机器的数量,机器可用来组装电脑,把进来时拥有的配件变成出去时的配件第二行首先给你一个数, 表示这个机器一天最大的组装量, 后面是2 * P 个数 1 ~ P表示电脑进入这个机器的配件要求, 0表示不能有这个配件, 1表示必须有这个配件, 2表示可有可无; P + 1 ~ 2 * P表示电...原创 2018-04-26 21:01:39 · 402 阅读 · 0 评论 -
poj - 1087 最大流dinic 字符串对应
题意:这个题是说在一个会议室里有n种插座,每种插座一个,每个插座只能插一种以及一个电器或者购买适配器使得其他接口的设备可以用。有m个设备,每个设备需要接到指定的插座上,并非所有的设备都可以插到插座上。有k中适配器可以选择(数量无限),eg适配器(a,b) 表示可以把b类插座变为a类插座,让你求出至少有多少个设备无法使用。思路:都是字符串来表示的插座、设备、适配器,所以用map去对应最大流去...原创 2018-04-26 21:42:22 · 171 阅读 · 0 评论 -
poj - 3281 最大流dinic 拆点 分两边
题意:有N头牛,F个食物,D个饮料。N头牛每头牛有一定的喜好,只喜欢几个食物和饮料。每个食物和饮料只能给一头牛。一头牛只能得到一个食物和饮料。而且一头牛必须同时获得一个食物和一个饮料才能满足。问至多有多少头牛可以获得满足。最大流问题,不过要想到把食物和饮料放在牛的两边,牛要拆点,流量为一,保证一头牛只能匹配一组食物和饮料。1、sp到食物,流量为1;2、食物到牛,流量为>=1...原创 2018-04-27 14:07:27 · 149 阅读 · 0 评论 -
poj - 2516 最小费用最大流 拆解多源多汇
题意:有N个供应商,M个店主,K种物品。每个供应商对每种物品的的供应量已知,每个店主对每种物品的需求量的已知,从不同的供应商运送不同的货物到不同的店主手上需要不同的花费,又已知从供应商Mj送第kind种货物的单位数量到店主Ni手上所需的单位花费。问:供应是否满足需求?如果满足,最小运费是多少?供求?花费? 看到这就想到了最小费用最大流,就直接建了一个图交了。。。Time Limit Exceede...原创 2018-04-27 17:43:14 · 820 阅读 · 0 评论 -
poj - 1459 最大流dinic简单题 神奇的输入
题意:(按输入输出来讲),给你n个点,其中有np个是能提供电力的点,nc个是能消费电力的点,剩下的点(n-np-nc)是中转战即不提供电力也不消费电力,点与点之间是有线路存在的,有m条线路,每条线路有最多运载限定。 前4个数据就是有n个点,np个供电点,nc个消费点,m条线路,接来题目先给出的是m条线路的数据,(起点,终点)最多运载量,然后是np个供电点的数据(供电点)最多供电量,接着就是nc个...原创 2018-04-27 19:17:41 · 179 阅读 · 0 评论 -
hdu - 4280 Island Transport 最大流dinic无向边
题意:有n个岛屿,m条路,给出n个岛屿的坐标,路的起点终点和人数容量,求从最西边到最东边的最大可行人数。最大流裸题,注意这是无向边,所以加边时反向边容量也设为w时间卡的很紧,G++: 9600+ms、c++ T 了。。。链接:hdu 4280#include <iostream>#include <algorithm>#include <cstd...原创 2018-04-28 17:03:19 · 196 阅读 · 0 评论 -
UVA - 10480 Sabotage 最大流最小割+ 输出割边集
题意:输入一个n和m,n为点数,m为边数,接下来m行u, v, w,求1和2不连接的最小花费,并输出割边。求最小割就是裸的最大流然后求割边集就是:最后一次不能增广后的残图,割边定义是容量==流量的点 即残图残量为0 的边,将图中的点分为 两部分,一部分为 原点能到达的点, 另一部分是汇点能到达的点,标记不同即是割边两点链接:uva - 10480#include <iost...原创 2018-07-23 15:36:04 · 282 阅读 · 0 评论 -
HDU - 4292 Food 最大流dinic 拆点 分两边
题意:有n个人,f种食物,d种饮料,接下来一行f个数表示每一种食物的数量,一行d个数表示每一种饮料的数量,接下来n行,每一行表示一个人对食物的喜欢与否,Y表示喜欢,N表示不喜欢,接下来n行表示对饮料的喜欢。问最多可以满足多少人(一个人同时得到一份食物和饮料为满足)。最大流问题,不过要想到把食物和饮料放在人的两边,人要拆点,流量为一,保证一个人只能匹配一组食物和饮料。1、sp到食物,流量为数...原创 2018-07-23 15:45:21 · 182 阅读 · 0 评论 -
HDU - 4289 Control 最大流, 拆点, 最小割
题意:有一个恐怖分子要从a点到b点,他可能通过所有线路。在一些点中放置特工,使一定抓到恐怖分子。特工在每个点的价格不一样,求最小总价格。把每一个点拆点,i->i'流量为权值,连接的点按拆点后连接即可。gg啊,无向图没看到wa了好几发。。。链接:hdu- 4289#include <iostream>#include <algorithm>#inc...原创 2018-07-23 15:51:20 · 306 阅读 · 0 评论 -
hdu - 3315 最大费用最大流 优先使用原匹配
题意:有两组人进行PK,编号都是1到N。并且每个人都有HP和ATK.。并且对应第i个人,如果赢了就的v[i]分,输了就丢失v[i]分。开始0分。可以改变参赛队员的顺序。让你求能够获得的最大分数和改变参赛队员顺序占一开始顺序的比例。求最大分数可建图 (sp, i, 1, 0)(i + n, tp, 1, 0) s赢 (i, j + n, 1, -vi) s输(i, j + n, ...原创 2018-04-13 14:28:11 · 315 阅读 · 0 评论 -
hdu - 3549 基础最大流 EK
题意 :给你一个N个顶点M条边的有向图,要你求1号点到N号点的最大流.注意重边。链接 :hdu 3549#include <iostream>#include <algorithm>#include <cstdio>#include <cmath>#include <cstring>#include <string>...原创 2018-04-11 14:39:38 · 169 阅读 · 0 评论 -
hdu - 3572 最大流 dinic
题意: 给N个任务,M台机器。每个任务有最早才能开始做的时间S,deadline E,和持续工作的时间P。每个任务可以分段进行,但是在同一时刻,一台机器最多只能执行一个任务. 问存不存在可行的工作时间。建图 :源点sp:0、每一天作为一个节点(t < 500):1 ~ 500、任务:500 + 1 ~ 500 + n、汇点tp:500 + n + 1源点->任务(sp, i,...原创 2018-04-11 14:50:35 · 192 阅读 · 0 评论 -
hud-2732 最大流 拆点 dinic
题意:给你一个网格,网格上的一些位置上有一只蜥蜴,所有蜥蜴的最大跳跃距离是d,如果一只蜥蜴能跳出网格边缘,那么它就安全了.且每个网格有一个最大跳出次数x,即最多有x只蜥蜴从这个网格跳出,这个网格就再也不能有蜥蜴进来了.问你最少有多少只蜥蜴跳不出网格.建图:每个点分成i,i + m * n i有蜥蜴(sp, i, 1) i能跳出x次(i, i +m * n, ...原创 2018-04-11 15:02:27 · 118 阅读 · 0 评论 -
hdu -3338 最大流 行列建图 dinic
题意:题目是给出类似图片那样的网格,在空白格子填入一个数,使行和或者列和等于黑格子中的数,每个格子填入的数在1-9分为内,找出任意一个满足的解。建图: sp-左-空白-上-tp(sp-上-空-左-tp)总共5种点1.type=0 黑格2.type=1 空格3.type=2 有两个数字的格子4.type=3 只有上边数字的格子5.type=4 只有左边数字的格...原创 2018-04-11 15:14:14 · 243 阅读 · 0 评论 -
hdu - 2883 最大流 离散化 dinic
题意:给定n个顾客,第i号顾客在si到达,点了ni个羊肉串,每个羊肉串需要ti个时间烤好。顾客想要在ei得到,一个烤炉只烤m串。问你是否能满足所有顾客的要求?能的话输出“Yes”,否则输出“No”。和3572类似,不过时间太长要用区间,读入每个时间点排序去重得到tot时间点 tot-1区间建图:源点到顾客任务(sp, i, ni * ti) 时间区间到汇点(j, tp, ...原创 2018-04-11 15:26:52 · 163 阅读 · 0 评论 -
hdu - 1533 (POJ - 2195) 最小费用最大流模板题 KM算法模板题
题意:给你一个N行M列的矩阵,其中“.”代表空地,“H”代表房子,“m”代表人,其中有n个房子和n个人。现在要求每个人进入一间房子,且人走一步需要支付1美元。求最小需要花费多少美元才能让所有人都进入到房子中(每个人只能进入一间房子,每个房子只能容纳一个人)。链接 :hdu 1533MCMF建图 源点到人(sp, i, 1, 0) 房子到汇点(j + n, tp, 1,...原创 2018-04-11 15:37:06 · 253 阅读 · 0 评论 -
hdu - 2686 Matrix、 hdu - 3776 Matrix Again 最大费用最大流 拆点
题意:给一个n*n的距阵,每个点都有一个值。问从(0,0)到(n-1, n-1)点(只能从左到右 或 从上到下)再回到(0,0)点(只能从右到左 或 下到上)经过的点的值总和最大是多少?每个点只能走一次。每个点拆成i, i + n * n 源点出2个方向,汇点进两个方向,所以就是一遍最大费用最大流建图:sp : 0 tp:n * n - 1 i->i + n * n (i...原创 2018-04-11 15:52:00 · 260 阅读 · 1 评论 -
hdu - 3667 最小费用最大流 拆边
题意:求从城市1运送K单位物品到城市n的最小花费。给定的有向边,每条边都有其容量c,并且,产生的费用是 a * ( f * f ),其中f是这条边上的流量,a是给出的系数。思路:我们以前做的 花费是 a*f ,而现在是 a*f*f。所以我们要变为 a*f 那么就是, 第一次运送时费用为a,第二次取这条路时费用为3a(即流量为2时费用值为a+3a=4a),……第i次取这条路时费用为(2*i-1)*a...原创 2018-04-11 16:00:27 · 209 阅读 · 0 评论 -
图的加边去重
void add(int u, int v, int w, int c){ int i; for(i = head[u]; i != -1; i = edge[i].next){ node E = edge[i]; if(v == E.v) break; } if(i != -1){//w 或 c具体看 ...原创 2018-04-28 20:49:29 · 504 阅读 · 0 评论 -
hdu - 3416 最短路spfa+最大流
题意: 有 n 个城市,知道了起点和终点,有 m 条有向边,问从起点到终点的最短路一共有多少条。(一条边只能走一次)先通过最短路去除掉没有用的边,然后用一次最大流就是答案了。不过要是去掉原图中不在最短路上的边,判断某条边是不是最短路上的边的时候: 要满足 d1[x[i]] + d[y[i]] + c[i] == d1[b]链接:hdu 3416#include <i...原创 2018-04-17 21:43:11 · 272 阅读 · 0 评论 -
HDU - 3605 Escape 状态压缩+最大流
题意:有n个人,m个星球,他们要去这些星球上居住,每个人对不同的星球都有适宜程度,每个星球有容纳量,问是否可以让所有人都去到这m个星球。刚开始想的时候觉得应该这样:加入一个超级源点和超级汇点。人与星球之间建立一条容量为1的有向边,源点与人之间建立一条容量为人总数的边,星球与汇点建立一条容量为该星球容纳人数的边。。。结果看看了数据范围10w人!不用想都会t。。。然后别人状态压缩的思路好巧妙哟...原创 2018-07-23 16:03:57 · 180 阅读 · 0 评论