
网络流
Ac-try
这个作者很懒,什么都没留下…
展开
-
[网络流24题] 10 餐巾 (线性规划网络优化 ,最小费用最大流)
题目大意:一家餐厅在相继的N天里,每天要用ri块餐巾。餐厅可以选择购买新的餐巾,每块的费用为p分;也可以把旧餐巾送到快洗部,洗一块需m天,花费f分;或者送到慢洗部,洗一块需要n(n>m)天,费用为s(s输入:输入文件共 3 行,第 1 行为总天教;第 2 行为每天所需的餐巾块数;第 3 行为每块餐巾的新购费用 p ,快洗所需天数 m ,快洗所需费用 f ,慢洗所需天数 n ,慢洗所需费原创 2015-08-22 10:28:27 · 478 阅读 · 0 评论 -
[网络流24题] 05 圆桌聚餐(最大流判满流)
题目大意:有m个不同单位的代表人来参加会议,每个单位的人数是确定的,会议餐厅有n张桌子,每个桌子能容纳的人数也是确定的,现在希望来自一个单位的人不在同一个桌子上就餐,求出满足要求的就餐方案,并输出方案;思路分析:①:设立一个源点,连向每一个单位,流量为每个单位来参加会议的人数;②:从每个单位向每个桌子连一条边,流量为1,保证了每个桌子每个单位只能有一个人;③:设立一个汇点,从每原创 2015-08-04 15:28:32 · 368 阅读 · 0 评论 -
zoj -- 3885 The Exchange of Items(最小费用最大流)
题目大意:有n个物品想进行物品交换,给出n个物品的初始值A[i], 最终想要得到的值B[i],给出m种交换方式,问是否有满足要求的交换,有的话输出最小交换次数,否则输出-1;思路分析:①:有一个前提,只有当所有物品的初始值的和等于最终状态下的值的和,才有可能有满足条件的交换;②:如何物品的初始值大于最终状态的值,就让这个点与源点相连,容量为两个值的差,表示该物品有这么有这些是需要交原创 2015-08-06 15:21:00 · 308 阅读 · 0 评论 -
[网络流24题] 20 深海机器人 (线性规划网络优化 ,最小费用最大流)
题目大意:深海资源考察探险队的潜艇将到达深海的海底进行科学考察。潜艇内有多个深海机器人。潜艇到达深海海底后,深海机器人将离开潜艇向预定目标移动。深海机器人在移动中还必须沿途采集海底生物标本。沿途生物标本由最先遇到它的深海机器人完成采集。每条预定路径上的生物标本的价值是已知的,而且生物的标本只能采集一次。本题限定深海机器人只能从其出发的位置沿着向北或者向东方向移动,而且多个深海机器人可以在同一时原创 2015-09-03 22:20:13 · 617 阅读 · 0 评论 -
[网络流24题] 19 负载平衡(最小代价供求,最小费用最大流)
题目大意;G 公司有n 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等。搬运货物时,只能在相邻的仓库之间搬运。给定的n 个环形排列的仓库的库存量,计算使n 个仓库的库存数量相同的最少搬运量。思路分析:使n个仓库存储的货物数量相同,这个数量也就是n个仓库存储的货物数量的平均值,那么:①:对于货物数量高于平均值的仓库,也就是需要搬出货物,就让这个仓库与源点相连,容量为这个原创 2015-08-06 15:02:37 · 510 阅读 · 0 评论 -
[网络流24题] 24 骑士共存(二分图最大独立集,网络最小割)
题目分析:在一个n*n个方格的国际象棋棋盘上,马(骑士)可以攻击的棋盘方格如图所示。棋盘上某些方格设置了障碍,骑士不得进入。对于给定的n*n个方格的国际象棋棋盘和障碍标志,计算棋盘上最多可以放置多少个骑士,使得它们彼此互不攻击。思路分析:要注意国际象棋棋盘骑士的走法:日字走法,先向左(或右)走一格,再向上(或下)走两格;或向左(向右)走两格,再向上(或下)走一格。二原创 2015-09-04 17:24:57 · 1017 阅读 · 0 评论 -
[网络流24题] 18 分配问题(二分图最佳匹配,最小费用最大流)
题目大意:有n个工作要分配给n个人做,给出每个人做每件工作所产生的效益, 求出最小总效益和最大总效益;思路分析:这道题 和17题的思路是一样的;①:设立一个源点s,从s向每个人连一条边,容量为1, 费用为0;②:从每个人向每个工作连一条边,容量为INF,费用为这个人做该工作产生的效益;③:设立一个汇点,从每个工作向汇点连一条边,容量为1,费用为0;代码实现:#i原创 2015-08-06 13:40:37 · 999 阅读 · 0 评论 -
[网络流24题] 17 运输问题(网络费用流量,最小费用最大流)
题目大意:有m个仓库,n个商店,给出每个仓库存储货物的数量,每个商店需进货的数量,给出每个仓库向每个商店运送单位货物的价格,求满足所有商店进货需求的最小花费及最大花费;思路分析:①:设立一个源点s,从s向每个仓库连一条边,容量为该仓库存储的货物数量,费用为0;②:从每个仓库向每个商店连一条边,容量为INF,当求最小花费时,费用为该单位向该商店运送单位货物的价格,当求最大花费时,费用原创 2015-08-05 22:42:44 · 568 阅读 · 0 评论 -
[网络流24题] 21 最长k可重区间集(最大权不相交路径 ,最小费用最大流)
题目大意:给定直线L上n个开区间组成的集合I,和一个正整数k,设计一个算法,从开区间集合I中选取出开区间集合S(S属于I), 使得在直线L的任何一个点x,S中包含点x的开区间个数不超过k,且z的绝对值的和最大(z属于s,指的是区间长度)。这样的集合S成为开区间集合I的最长k可重区间集。z的绝对值的和称为最长k可重区间集的长度。对于给定的开区间集合数I和正整数k,计算开区间集合I的最长k可重原创 2015-09-04 16:42:34 · 876 阅读 · 1 评论 -
[网络流24题] 03 最小路径覆盖问题(有向无环图最小路径覆盖,网络最大流)
题目大意:计算一个有向图的最小点路径覆盖并打印路径。思路分析:1:对于一个路径覆盖,有如下概念: ①:每个顶点只属于一个路径; ②:路径上除终点外,从每个顶点出发只有一条边指向路径上的另一顶点。2:有向无环图的最小路径覆盖问题包括两种(设G是一个有向无环图,S是G的一个路径集合): ①:最小边路径覆盖:满足对于G中所有的边E,E在S中的一条路径中出现原创 2015-07-25 16:24:51 · 1212 阅读 · 0 评论 -
[网络流24题] 16 数字梯形(最大权不相交路径 ,最小费用最大流)
题目大意:给定一个由n行数字组成的数字梯形如下图所示。梯形的第一行有m个数字。从梯形的顶部的m个数字开始,在每个数字处可以沿左下或者右下方向移动,形成一条从梯形的顶至底的路径。规则1:从梯形的顶至底的m条路径互不相交。规则2:从梯形的顶至底的m条路径仅在数字结合处相交。规则3:从梯形的顶至底的m条路径允许在数字结合处相交或边相交。对于给定的数字梯形,分别按照规则1,2,原创 2015-08-22 11:08:34 · 1000 阅读 · 1 评论 -
POJ 1149--PIGS
代码实现:#include#include#include#include#include#define Min(a,b) ((a)<(b)?(a):(b))#define Max(a,b) ((a)>(b)?(a):(b))using namespace std;const int N=110, M=22210, INF=0x3f3f3f3f;int n, m, s, t,原创 2015-10-16 07:03:11 · 263 阅读 · 0 评论 -
SGU 438 -- The Glorious Karlutka River =)
代码实现:#include#include#include#include#include#include#define Min(a,b) ((a)<(b)?(a):(b))#define Max(a,b) ((a)>(b)?(a):(b))#define P(a, b) ((a-1)*50+(b))#define Mac(a) ((a)+5000)using namesp原创 2015-10-16 07:16:03 · 460 阅读 · 0 评论 -
POJ 3281 -- Dining
代码实现:#include#include#include#include#include#define Min(a,b) ((a)<(b)?(a):(b))#define Max(a,b) ((a)>(b)?(a):(b))#define INF 0x3f3f3f3f#define IN64 0x3f3f3f3f3f3f3f3fllusing namespace std;原创 2015-10-16 07:09:52 · 306 阅读 · 0 评论 -
POJ 1637 -- Sightseeing tour
代码实现:#include#include#include#include#include#define Min(a,b) ((a)b)?(a):(b))#define Max(a,b) ((a)>(b)?(a):(b))#define Abs(a) ((a)>(0)?(a):(-a))using namespace std;const int N=210, M=2810原创 2015-10-16 07:05:08 · 323 阅读 · 0 评论 -
SPOJ IM -- Intergalactic Map
代码实现:#include#include#include#include#include#define Min(a,b) ((a)<(b)?(a):(b))#define Max(a,b) ((a)>(b)?(a):(b))#define INF 0x3f3f3f3f#define IN64 0x3f3f3f3f3f3f3f3fllusing namespace std;原创 2015-10-16 07:18:07 · 387 阅读 · 0 评论 -
POJ 2391 -- Ombrophobic Bovines
代码实现:#include#include#include#include#include#define Min(a,b) ((a)<(b)?(a):(b))#define Max(a,b) ((a)>(b)?(a):(b))#define INF 0x3f3f3f3f#define IN64 0x3f3f3f3f3f3f3f3fllusing namespace std;原创 2015-10-16 07:07:55 · 342 阅读 · 0 评论 -
ZOJ 2760 -- How Many Shortest Path
代码实现:#include#include#include#include#include#define Min(a,b) ((a)<(b)?(a):(b))#define Max(a,b) ((a)>(b)?(a):(b))#define INF 0x3f3f3f3f#define IN64 0x3f3f3f3f3f3f3f3fllusing namespace std;原创 2015-10-16 07:12:13 · 326 阅读 · 0 评论 -
[网络流24题] 02 太空飞行计划(最大权闭合图, 最大流)
题目大意:有m个实验,每个实验完成会获得相应的收益,但完成一个实验需要相应的实验仪器,配置仪器需要支付相应的费用,问进行哪些实验,配置哪些仪器,使得净收益最大;思路分析:1. 概念: 闭合图:定义一个有向图G=(V,E)的闭合图是该有向图的一个点集,且改点集的所出边都还指向该点集,即闭合图内任意点的后继也一定在闭合图中; 最大权闭合图:为每个点分配一个权值,最大权闭原创 2015-07-24 17:39:27 · 342 阅读 · 0 评论 -
[网络流24题] 09 方格取数问题 (二分图点权最大独立集,最小割)
题目大意:在有一个m*n个方格的棋盘中, 每个方格有一个正整数。现在要从方格中取数, 是任意2个数所在的方格没有公共边,且取出数的总和最大, 求出最大的数字总和最大;思路分析:二分图点权最大独立集,转化为最小割模型,从而用最大流解决。首先把棋盘黑白染色,使相邻格子颜色不同,所有黑色格子看做二分图X集合中顶点,白色格子看做Y集合顶点,建立附加源S汇T。①:原创 2015-08-14 15:39:32 · 573 阅读 · 0 评论 -
HDU -- 4183 Pahom on Water(最大流)
题目大意:二维空间上有一些点,每个点有一个频率,圆心坐标,半径,s点是频率最低的点,t是频率最高的点,要从s点走到t点,在从点t回到点s。当从s走到t时,要求两个点表示的园相交并且第一个点的频率小于第二个点的频率,而从t到s,要第一个点的频率高于第二个点的频率,除了s点t点,所有的点走过一次就会消失,问是否存在这样一种走法;思路分析:从s到t频率降低,从t到s频率升高,其实也就是从s点走到t点原创 2015-07-13 18:06:51 · 477 阅读 · 0 评论 -
HDU -- 2883 kebab(最大流判满流)
题目大意:有n个人来买烤串,烤串机一次能烤m个烤串,给出每个人到来的时间si,离开的时间ei,每个人买ni个烤串,每个烤串所序的时间为ti,问鞥否满足所有顾客的需求;思路分析:这道题和hdu的3572很像,只不过这道题的si和ei范围太大,所以不能采用时间点,而是用时间区间;①:设立一个源点,连向每一个人,权值为ni*ti,表示一个人所有烤串所需要的时间;②:把每个人的时间si,ei都原创 2015-07-13 17:10:00 · 347 阅读 · 0 评论 -
HDU -- 4280 Island Transport(最大流)
题目大意:n个岛屿,m个无向路径,问从最西边的岛屿到最东边的岛屿的最多能运送多少乘客;代码实现:SAP:#include#include#include#include#pragma comment(linker, "/STACK:1024000000,1024000000")#define Min(a,b) ((a)<(b)?(a):(b))#define Max(a,b原创 2015-07-10 16:46:32 · 419 阅读 · 0 评论 -
HDU -- 3667 Transportation(最小费用最大流 )
题目大意:有n个城市,m条道路,要从城市1运送k单位的货物到城市n,每条路有一个容量上限,路上有小偷,因此每条路上都有一个保障系数a,如果你想在某条路上ai运送x单位的货物,你要支付ai*x*x去雇佣保安来保护你的货物,现在给出m条道路连接的城市,保障系数,容量上限,问最少的花费是多少;思路分析:注意:这道题有一个很关键的条件,每条边的最大容量是5;①:设立一个源点连向城市1,容量原创 2015-07-20 23:38:26 · 340 阅读 · 0 评论 -
HYSBZ — 1070 修车(最小费用最大流)
题目大意:同一时刻有N位车主带着他们的爱车来到了汽车维修中心。维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的。现在需要安排这M位技术人员所维修的车及顺序,使得顾客平均等待的时间最小。 说明:顾客的等待时间是指从他把车送至维修中心到维修完毕所用的时间。思路分析:这道题要注意的是顾客的等待时间不光是自己维修所需的时间,还有等待别人维修的时间(用一同一位技术人员的),刚原创 2015-07-19 11:29:48 · 555 阅读 · 0 评论 -
HUD -- 3081 Marriage Match II(最大流+二分+并查集)
题目大意:有n个女孩n个男孩玩过家家,给出m组女孩男孩不会吵架的关系,给出f组女孩和女孩是好朋友的关系,朋友之间的关系是可以传递的,女孩选择男孩配对保证女孩及女孩的朋友都不会和这个男孩吵架,每一轮游戏,女孩 不能选择相同的男孩,问最多能进行几轮游戏。思路分析:①:女孩的朋友关系是可以相互出传递的,所以利用并查集的方法,只要两个女孩是朋友,那么只要她们其中一个人可以选择一个男孩,那么另一个人原创 2015-07-11 19:45:11 · 393 阅读 · 0 评论 -
HDU -- 3468 Treasure Hunting (最大流+BFS)
题目大意:iSea和朋友去挖宝藏,他的朋友有一个n*m的地图,他们按着地图上A,B....Z,a,b....z汇合点的顺序去寻宝藏,他们每次在下一个汇合点上汇合,再一起重新出发,iSea每次选择走最短的路径到下一个汇合点,为了尽快去到下一个汇合点,iSea在这个途中不管遇到多少个金子,也只能捡一个,问走到最后的标识点的途中iSea最多能捡多少金子(如果无法从一个汇合点走向另一个汇合点,直接输出-1原创 2015-07-13 15:57:03 · 558 阅读 · 0 评论 -
HDU — 3416 Marriage Match IV(最大流+最短路)
题目大意:有n个城市,m条道路,给出起点,终点,求从起点到终点一共有多少条不同的最短路径;思路分析:先用最短路求出最短路径,在此基础上建边,权值为1(表示一条边只能走一遍),跑一边最大流即可;注意源点和汇点不一定就是1和n这两个点;代码实现:#include#include#include#include#include#define Max(a,b) ((a)>(b)?原创 2015-07-12 15:44:13 · 412 阅读 · 0 评论 -
HDU -- 3277 Marriage Match III(最大流+二分+并查集+拆点)
思路分析:这道题和3081的题差不多,用的方法也一样,唯一多出来的就是这道题,女孩除了可以选择她不会争吵及她朋友不会争吵的人外,还可以任意选择k个男生,那么在3081建图的基础上,我们可以把每个女孩拆为i和i‘,用i连接i’,权值为k,表示女孩可以额外的选择k个男孩,在让i‘连接每一个男孩,容量为1,表示每个男孩只能选择一次;代码实现:#include#include#include原创 2015-07-11 20:38:24 · 335 阅读 · 0 评论 -
HDU -- 3572 Task Schedule(最大流,判满流)
题目大意:有n个任务,m个机器,一个机器在同一时间只能做一个任务,每个任务要花费一个机器p天,必须在s天之后开始,在e天之前结束,一个机器一次只能处理一个任务,一个任务可以在不同机器上分段执行,判断在规定时间内能否完成全部任务;建图:设立一个超级源点s,连向每个任务,容量为完成该任务所需的时间;然后若每个任务可以在si和ei处理,则让该任务分别向这些天连一条边,容量为1,代表一个机器一次只能处原创 2015-07-10 17:23:01 · 351 阅读 · 0 评论 -
POJ -- 3469 Dual Core CPU (最大流,最小割)
题目大意:双核计算机A,B,有n个模块,每个模块都要再CPU中运行,并且知道了每个模块在每个CPU上的运行时间,如果它们运行在同一个cpu,就可以忽略共享数据的花费,否则需要额外的费用,求完成所有任务的最小花费;思路分析:①:最大流量=最小割容量②:建图:让两个CPU分别为图的源点s和汇点t,已知每个模块与两个CPU的运行时间Ai,Bi,则对于每个模块,从s连向一条容量俄日Ai的边原创 2015-07-10 16:41:09 · 394 阅读 · 0 评论 -
HDU — 4240 Route Redundancy(最大流)
题目大意:求出最小的redundancy ratio,redundancy ratio也就是从A点到B点一个小时能通过的最大车流量/所通过的路径的某一条路径的车流量代码实现:SAP:#include#include#include#include#define Max(a,b) ((a)>(b)?(a):(b))using namespace std;const int N原创 2015-07-13 18:15:56 · 478 阅读 · 0 评论 -
HDU -- 3605 Escape(最大流 状态合并判满流)
题目大意:有n个人,m个星球,对每个人来说,每个星球的选取状态可以使选或者不选,每个星球最多住的人数是一定的,问能否所有人都居住在星球上;思路分析:最大流判满流,但由于n太大,直接建图最后会超时;①:一种建图方式是:星球最多有10个,所以每个人对于所有星球最多有2^10个状态,也就是1024个,这样我们就是把十万个点缩成了1024个点,然后我们把相同状态的点进行合并,设立一源点,让源点连向原创 2015-07-11 23:06:55 · 414 阅读 · 0 评论 -
HUD -- 1533 Going Home(费用流基础题)
题目大意:有一个n*m的大小地图,图上有相等数量的小矮人和房子,每个小矮人只能水平或垂直走,小矮人每移动一步要花费一美元,每个房子只能容纳一个人,问要让所有小矮人都进房子里的最小花费是多少。这是我做的第一个费用流,还不清楚是不是有什么优化方法,吼吼。。。。。代码实现:#include#include#include#include#define Abs(x,y) ((x)>原创 2015-07-15 10:27:43 · 383 阅读 · 0 评论 -
[网络流24题] 04 魔术球问题 (有向无环图最小路径覆盖, 最大流)
题目大意:假设有n根这柱子, 现在按照下述规则在这n根柱子中一次放入编号为1, 2, 3, 4 .......的球。①:每次只能在某根柱子的最上面放球。②:在同一根柱子中, 任意两个相邻球的编号之和为完全平方数。现在给出n根柱子, 计算最多能放多少个球。思路分析:枚举答案转化为判定性问题,然后最小路径覆盖,可以转化成二分图最大匹配,从而用最大流解决。枚举答案a,1,原创 2015-08-14 10:22:14 · 658 阅读 · 0 评论 -
[网络流24题] 06 最长递增子序列(最多不相交路径,最大流)
题目大意:给定正整数序列x1,..., xn。(1):计算其最长递增子序列的长度s(非降)。(2):计算从给定的序列中最多可去除多少个长度为s的递增子序列。(3):如果允许在取出的序列中多次使用x1和xn, 则从给定的序列中最多可以取出多少个长度为s的递增子序列。思路分析:(1):用 Lis算法解决第一问,求出maxlen[i],表示以第i个元素为结尾的最长递增子序列的长度原创 2015-08-14 11:12:26 · 844 阅读 · 0 评论 -
[网络流24题] 01 搭配飞行员(最大流)
题目大意:共有n个飞行员,有n1个正飞行员,其余的为副飞行员,正飞行员和副飞行员相互匹配,给出若干匹配关系,问最大匹配数是多少?思路分析:①:设立一个源点,连向各个正飞行员,容量为1;②:根据题中给出的匹配关系,从正飞行员连向副飞行员,容量为1;③:设立一个汇点,让每个副飞行员连向汇点,容量为1;直接跑一边最大流,求出最大流即可;代码实现:#include#inc原创 2015-07-22 14:08:50 · 398 阅读 · 0 评论 -
SGU 326 -- Perspective
代码实现:#include#include#include#include#include#define Min(a,b) ((a)<(b)?(a):(b))#define Max(a,b) ((a)>(b)?(a):(b))#define Abs(a) ((a)>(0)?(a):(-a))using namespace std;const int N=500, M=1650原创 2015-10-16 07:14:06 · 356 阅读 · 0 评论