图论---网络流
pengwill97
C.S Master
展开
-
HDU 3549 FlowProblem(网络流)
题意分析小试牛刀 最大流的FF算法基本思路就是找増广路,存在增广路径即表明这条路径可以加入更多的流。 一直寻找,直到找不到増广路位置。 可想而知时间消耗不忍直视。代码总览#include<bits/stdc++.h>using namespace std;const int nmax = 50;int tt,kase = 1,n,m,s = 1,t,an...原创 2018-04-15 15:50:26 · 124 阅读 · 0 评论 -
【网络流24题】魔术球(最小路径覆盖)
题意假设有 nn n 根柱子,现要按下述规则在这 nn n 根柱子中依次放入编号为 1,2,3,4,⋯1,2,3,4,⋯ 1, 2, 3, 4, \cdots 的球。每次只能在某根柱子的最上面放球。在同一根柱子中,任何 22 2 个相邻球的编号之和为完全平方数。试设计一个算法,计算出在 nn n 根柱子上最多能放多少个球。题解根据题意建立DAG,从而建立最小...原创 2018-09-13 00:29:46 · 187 阅读 · 0 评论 -
【网络流24题】圆桌聚餐 (最大流)
题意假设有来自 nn n 个不同单位的代表参加一次国际会议。每个单位的代表数分别为 riri r_i 。会议餐厅共有 mm m 张餐桌,每张餐桌可容纳 cici c_i 个代表就餐。 为了使代表们充分交流,希望从同一个单位来的代表不在同一个餐桌就餐。试设计一个算法,给出满足要求的代表就餐方案。题解最大流代码#include<bits/st...原创 2018-09-13 00:49:45 · 537 阅读 · 0 评论 -
【网络流24题】最长递增子序列(拆点+最大流)
题意给定正整数序列x1∼xnx_1 \sim x_nx1∼xn,以下递增子序列均为非严格递增。计算其最长递增子序列的长度 sss。计算从给定的序列中最多可取出多少个长度为 sss 的递增子序列。如果允许在取出的序列中多次使用x1x_1x1 和 xnx_nxn,则从给定序列中最多可取出多少个长度为 sss 的递增子序列。题解如果每个点只能用一次,考虑拆点,变成前点和...原创 2018-09-17 23:43:56 · 1065 阅读 · 0 评论 -
【网络流24题】试题库(最大流)
题意假设一个试题库中有 nnn 道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取 mmm 道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算法。题解每一道题为一个点,每一种类型的试卷为一个点。源点向每一道题连容量为1的边,每一道题向其对应类型连容量的1的边,每一种类型的试卷向汇点连需要的个数为容量的边。跑最大流即可。代码#includ...原创 2018-09-18 18:05:25 · 1878 阅读 · 0 评论 -
【网络流24题】餐巾计划(最小费用最大流)
题意一个餐厅在相继的 nnn 天里,每天需用的餐巾数不尽相同。假设第 iii 天需要 rir_iri 块餐巾。餐厅可以购买新的餐巾,每块餐巾的费用为 PPP 分;或者把旧餐巾送到快洗部,洗一块需 MMM天,其费用为 FFF 分;或者送到慢洗部,洗一块需 NNN 天,其费用为 SSS 分(S&lt;FS &lt; FS<F)。每天结束时,餐厅必须决定将多少块脏的餐巾送...原创 2018-09-23 13:53:49 · 215 阅读 · 0 评论 -
【网络流24题】运输问题(最小费用最大流)
题意W 公司有 mmm 个仓库和 nnn 个零售商店。第 iii 个仓库有 aia_iai 个单位的货物;第 jjj 个零售商店需要 bjb_jbj 个单位的货物。货物供需平衡,即∑i=1mai=∑j=1nbj\sum\limits_{i = 1} ^ m a_i = \sum\limits_{j = 1} ^ n b_j i=1∑mai=j=1∑nbj。从第...原创 2018-09-23 14:30:02 · 3479 阅读 · 0 评论 -
【算法练习】BZOJ1934: [Shoi2007]Vote 善意的投票(最小割)
题意幼儿园里有n个小朋友打算通过投票来决定睡不睡午觉。对他们来说,这个问题并不是很重要,于是他们决定发扬谦让精神。虽然每个人都有自己的主见,但是为了照顾一下自己朋友的想法,他们也可以投和自己本来意愿相反的票。我们定义一次投票的冲突数为好朋友之间发生冲突的总数加上和所有和自己本来意愿发生冲突的人数。 我们的问题就是,每位小朋友应该怎样投票,才能使冲突数最小?题解第i个小朋友偏好1,则S连i,容...原创 2018-09-23 17:32:12 · 187 阅读 · 0 评论 -
【网络流 24 题】方格取数(二分图的最大点权独立集)
题意在一个有 m×nm \times nm×n个方格的棋盘中,每个方格中有一个正整数。现要从方格中取数,使任意 222 个数所在方格没有公共边,且取出的数的总和最大。试设计一个满足要求的取数算法。题解题目要求不相邻,可以转换为最大独立集,又由于点权不全为1,则为最大点权独立集。最大点权独立集 = 总点权 - 最小点权覆盖,问题转换为如何求最小点权覆盖。建立二分图,源点向左点集连边, 容...原创 2018-09-19 00:38:11 · 365 阅读 · 0 评论 -
【算法练习】Luogu P2604 [ZJOI2010]网络扩容(最大流+费用流)
题意给定一张有向图,每条边都有一个容量C和一个扩容费用W。这里扩容费用是指将容量扩大1所需的费用。求:在不扩容的情况下,1到N的最大流;将1到N的最大流增加K所需的最小扩容费用。题解第一问最大流。第二问,在原来最大流参量网络基础上,考虑如何加边求出结果。因为要求在原来的基础上增加流量K,新建源点S,S连1,容量为K,费用为0,这样保证了新增的流量为K。在原来的边的基础上,增加边,容...原创 2018-09-26 12:48:10 · 322 阅读 · 0 评论 -
【网络流24题】最小路径覆盖(最小路径覆盖)
题意给定有向图 G=(V,E)G=(V,E)G = (V, E)。设 PP P 是 GG G 的一个简单路(顶点不相交)的集合。如果 VV V 中每个顶点恰好在 PP P 的一条路上,则称 PP P 是 GG G 的一个路径覆盖。PP P 中路径可以从 VVV 的任何一个顶点开始,长度也是任意的,特别地,可以为 00 0 。GG G 的最小路径覆盖是 GG G 的所含路径条数...原创 2018-09-12 00:19:37 · 1178 阅读 · 0 评论 -
【网络流24题】太空飞行计划(最大权闭合子图)
题意W 教授正在为国家航天中心计划一系列的太空飞行。每次太空飞行可进行一系列商业性实验而获取利润。现已确定了一个可供选择的实验集合 E=E1,E2,⋯,EmE={E1,E2,⋯,Em}E=E1,E2,⋯,EmE=E1,E2,⋯,EmE={E1,E2,⋯,Em}E=E1,E2,⋯,EmE={E1,E2,⋯,Em} E = \{ E_1, E_2, \cdots...原创 2018-09-12 00:03:25 · 247 阅读 · 0 评论 -
POJ1237 Drainage Ditches (网络流)
题意分析农夫John有N个池塘一次编号为1到N,在这些池塘之间有M条单向的水渠,每一条有一个最大的通水速度。每一个池子里有一个调节器,可以设定池子里的水分别通过哪些水渠流多少到别的池子。现在要求从编号为1的水池向编号为N的水池进行输水,最大的通水速度是多少。最大流 FF居然没有卡。代码总览#include<cstdio>#include<algorithm&...原创 2018-04-15 16:09:12 · 368 阅读 · 0 评论 -
BZOJ1001 [BeiJing2006]狼抓兔子 (网络流)
题意分析一看就是一道网络流的题目,然后上去最大流直接搞。 然后发现超时了,所以学了一波当前弧优化,然后就过了。 然后我觉得还可以再快一点,就IO加速了一下, 发现速度提高了400ms。 嗯,FASTIO还是很强的。 还有这道题是无向图,所以正反边容量都是w,一开始我建成正边w反边0,过不了。原因是有向图和无向图还是不一样的,会影响到增广的情况。 另外因为是平面图,所以可以求出对偶图,...原创 2018-04-17 18:30:13 · 181 阅读 · 0 评论 -
POJ2987 Firing (网络流)
题意分析最大权闭合和回路代码总览#include<cstdio>#include<bitset>#include<cstring>#include<queue>#include<algorithm>using namespace std;const int nmax = 60005;const int INF...原创 2018-04-23 09:23:16 · 176 阅读 · 0 评论 -
ACM-ICPC2018 宁夏丝绸之路网络赛 Clever King (网络流)
题意分析当时感觉就是网络流,然后学了如何建图,但是脑残+手残正反边都给建成INF了,凉凉。代码总览#include<bits/stdc++.h>using namespace std;typedef long long ll;const int nmax = 100000;const int INF = 0x3f3f3f3f;typedef struct {...原创 2018-04-23 09:35:03 · 746 阅读 · 0 评论 -
HihoCoder1398 网络流五·最大权闭合子图 (网络流)
题意分析如题 注意边数是约束条件,不是顶点的个数。代码总览#include<bits/stdc++.h>using namespace std;const int nmax = 10000;const int INF = 0x3f3f3f3f;typedef long long ll;typedef struct{ int to,nxt; l...原创 2018-04-23 13:21:13 · 180 阅读 · 0 评论 -
【练习】UVA 11419 SAM I AM (网络流最大流/最小点覆盖)
题意给出一个网格图,网格中有一些怪物,可以从选择横向或者纵向发射炮弹,每发炮弹会把对应行或者列的全部怪物清除,最少需要几发炮弹,并给出发射炮弹的行列。题解之前没做过这样的题目。 网格图套路就是按行或者按列建图,每一行作为一个节点,每一列作为一个节点,如果行列交叉部分有怪物,那么在建图中就加入一条边。如下图 表示1行1列,1行3列和2行4列有怪物。 忽略掉S和T的部分,这样...原创 2018-08-02 16:00:47 · 310 阅读 · 0 评论 -
【练习】UVALive - 3268 Jamie's Contact Groups(网络流最大流+二分)
题意给出nnn个人和mmm个分组,每个人可以属于很多组,现在要求给出一组分组方案,使得分组后的结果中最大组尽量小,输出最后最大组中的人数。题解写题的时候考虑到了网络流,但是没有想到二分,就认为网络流写不了。 考虑S和每一个人连边,容量为1,每个人再和每个组连边,容量为1,最后组合T连边,容量为x,每次二分这个容量,如果最大流和人数相等,说明当前最大的人数一定小于等于x,继续二分,...原创 2018-08-02 16:25:43 · 544 阅读 · 0 评论 -
【算法练习】BZOJ1877: [SDOI2009]晨跑 (网络流,最小费用最大流)
题意n个点,m条单向边;每条边有费用(通过的时间),每条边只能走一次(流量限制),求用走的边尽可能多,并且时间尽可能短。(最小费用+最大流)题解最小费用最大流,然后建图的时候拆点,原因是只能经过一次。代码#include<bits/stdc++.h>using namespace std;typedef double db;typedef long lon...原创 2018-08-07 23:11:34 · 231 阅读 · 0 评论 -
【网络流24题】搭配飞行员(二分图最大匹配)
题意飞行大队有若干个来自各地的驾驶员,专门驾驶一种型号的飞机,这种飞机每架有两个驾驶员,需一个正驾驶员和一个副驾驶员。由于种种原因,例如相互配合的问题,有些驾驶员不能在同一架飞机上飞行,问如何搭配驾驶员才能使出航的飞机最多。因为驾驶工作分工严格,两个正驾驶员或两个副驾驶员都不能同机飞行。题解二分图最大匹配。 建立源点和汇点,源点连左边点集,容量为1;右边点集连汇点,容量为1....原创 2018-09-11 23:51:40 · 526 阅读 · 0 评论 -
【算法练习】Luogu P2472 [SCOI2007]蜥蜴(最大流)
题意在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃到边界外。每行每列中相邻石柱的距离为1,蜥蜴的跳跃距离是d,即蜥蜴可以跳到平面距离不超过d的任何一个石柱上。石柱都不稳定,每次当蜥蜴跳跃时,所离开的石柱高度减1(如果仍然落在地图内部,则到达的石柱高度不变),如果该石柱原来高度为1,则蜥蜴离开后消失。以后其他蜥蜴不能落脚。任何时刻不能有两只蜥蜴...原创 2018-09-26 14:49:41 · 253 阅读 · 0 评论