
网络流
文章平均质量分 50
Etta19
这个作者很懒,什么都没留下…
展开
-
【网络流24题】搭配飞行员(最大流+二分图匹配)
传送门 搭配飞行员 题意:二分图匹配裸题,不多说I think Dinic算法跑最大流解决||匈牙利算法Code代码一:Dinic#include<cstdio>#include<queue>#include<cstring>using namespace std;const int sm = 105,sn=sm*sm+200;const int Inf = 0x3f原创 2017-08-25 17:07:19 · 369 阅读 · 0 评论 -
【网络流24题】数字梯形(二分图+最大费用流)
传送门 数字梯形 题意:求解按以下不同规则选择数字梯形中数的最大和 1)从梯形的顶至底的m条路径互不相交; 2)从梯形的顶至底的m条路径仅在数字结点处相交; 3)从梯形的顶至底的m条路径允许在数字结点相交或边相交。I think 最大费用流。对每个位置进行拆点分别在xy集合,增设源点S与汇点T,记(x,y,u,v)表示x连向y点费用为u容量为v的边原创 2017-08-27 19:59:13 · 406 阅读 · 0 评论 -
【网络流24题】最长k可重区间集(最大费用流+二分图)
传送门 最长k可重区间集 题意:给出开区间集合,求从其中选择若干个区间使得同时有相交部分的区间数不超过k,且选择区间的长度和最大.I think 最大费用流问题.两种建模方法,简单来说一个是拆点+增设点,另一个是以离散化后的区间端点设置点,所有给出区间并集两端控流. 后者因为边数更少所以更快.关键在于每一段区间只能选择一次,因此相应边的流量总是设置为1,限制流量就需要在源/汇/原创 2017-08-27 20:08:07 · 382 阅读 · 0 评论 -
【网络流24题】星际转移(分层图+枚举)
传送门 星际转移 题意:给出若干容纳人数不同的太空船循环停站路线(特定时间停特定站),任意两站之间行驶耗时为1,求k个人从起点地球到终点月球的最小耗时.I think 分层图问题.对每个太空站i在第day天建立点< i,day>,相当于在枚举day时通过添加新边和新点将图层层展开. 乘客可以在某个站点等待,因此需要增设< i,day-1> —> < i,day>容量为原创 2017-08-27 20:23:40 · 370 阅读 · 0 评论 -
【网络流24题】孤岛营救问题(分层图+BFS)
传送门 孤岛营救问题I think 分层图问题.p枚钥匙是否拿到共有2^p种状态,用二进制表示,对于每一种状态建立分层图广搜求解. 许久不打BFS生疏了.Code#include<cstdio>#include<cstring>#include<queue>using namespace std;const int sm = 11;const int sn = 1<<1原创 2017-08-27 20:27:42 · 494 阅读 · 0 评论 -
【网络流24题】航空路线问题(最大费用流)
传送门 航空路线问题 题意:给定起终点,找出两条除起终点之外无相交点的最长路径.I think 最大费用流问题.拆点后对于直航< a,b>,仅当a< b时连边(若当a>b时也连边,则出现正环,SPFA无法求解),将点1与点N所连边流量设置为2,相当于找出两条除起点与终点之外无重合的路径. 输出方案时只依靠pre回头找常常是行不通的,因为如果不特殊处理,你无法知道若干条原创 2017-08-27 20:39:48 · 1022 阅读 · 0 评论 -
【网络流24题】深海机器人(最大费用流)
传送门 深海机器人 题意:给定带一次性边权网格与若干机器人的起终点,规定起终点必须被机器人经过的次数,求所有机器人能够得到的最大边权和.I think 最大费用流,源点向起点连边,终点向汇点连边,方格上的点向相邻点连流量为1费用为val的边.除此之外,对于题目要求,”多个机器人可以在同一时间占据同一位置“,方格上的点还要向相邻点连流量为Inf,费用为0的边. 注意题面原创 2017-08-28 18:32:39 · 441 阅读 · 0 评论 -
【网络流24题】火星探险(拆点+费用流)
传送门 火星探险 题意:给定网格,其中放有只能被拿取一次的岩石,求从左上角格点到右下角格点的k条路径,使得拿取的岩石总数最多。I think 最大费用流,将点拆至x,y两个集合.对于格点i在x集合中的对应点,向i在y集合中的对应点连容量为Inf,费用为0的边,若其置放岩石,再向y集中的对应点了连容量为1费用为1的边,向其右边和下边的在x集中的对应点连容量为Inf,费用为0的边.原创 2017-08-28 19:00:49 · 494 阅读 · 0 评论 -
【网络流24题】汽车加油行驶(分层图+最短路)
传送门 汽车加油行驶 题意:给定网格,部分格点设有加油站,汽车驶至该格点必须加油。给定一辆车加满油的最大行驶距离,加一次油的花费,以及在任意点设置新油库的花费。求一辆满油车从左上角格点到右下角格点的最小花费。I think 根据汽车的剩余油量建立分层图。 若油量不满,点< i,k>向点< i,top>连长度为A/A+C的边。 若油量非空,非油库点< i,k>原创 2017-08-28 19:22:57 · 575 阅读 · 0 评论 -
【网络流24题】软件补丁(最短路)
传送门 软件补丁 题意:给出若干个在特定条件下(修复前后有指定状态)适用的修复补丁,求利用给出补丁将一个有若干漏洞的软件修复为没有漏洞的软件的最小修复次数.I think 实质上是一个最短路问题,同UVA658. 用二进制串表示软件的漏洞状态,1表示存在漏洞,0表示不存在漏洞.答案即是从状态1…11(共有n个1)->0…00的最短路. 若提前建图会直接有2^原创 2017-08-27 19:50:23 · 383 阅读 · 0 评论 -
【网络流24题】餐巾计划(最小费用流)
觉得费用流是很神奇的东西原创 2017-08-27 19:15:04 · 334 阅读 · 0 评论 -
【网络流24题】太空飞行计划(最大权闭合图+最小割)
传送门 太空飞行计划 题意:m个实验分别依赖若干仪器,实验有收益,仪器需支出。被不同实验所依赖的相同仪器可在被买下后重复使用。求选择若干实验的最大获利(收益-支出)。I think 先说做法。实验和仪器分设为x,y集合的点。增设源汇点,源点向所有x集合点连边权为实验收益的边,y集合点向汇点连边权为仪器费用(>=0)的边,x集合点向y集合中实验对应仪器点连边,权值设为Inf。最终原创 2017-08-25 20:53:06 · 341 阅读 · 0 评论 -
【网络流24题】最小路径覆盖(二分图匹配)
传送门 最小路径覆盖 题意:从一张图中选择最少的边使图的端点集合v包含于所有选择边的端点集合。I think 将原图中点i拆为两个点xi,yi,原图中的边(i,j)转化为(xi,yj),题给的是有向无环图,所以对新图求二分图最大匹配,最终原图点数-新图最大匹配数即为答案。 未匹配即未选择任意一条边时,若将每个点视为自环,此时答案为原图点数,找到一个匹配,答案便减少1,原创 2017-08-25 21:05:35 · 393 阅读 · 0 评论 -
【网络流24题】魔术球(最小路径覆盖+枚举)
传送门 魔术球 题意:向n根柱子里依次放置编号连续且递增的球。且同一根柱子里相邻两球编号和为完全平方数。求在这n根柱子里最多能放多少球。I think 模型转化:视n为路径覆盖数,枚举放入环中数的数量,转化为上一题的路径覆盖问题。 由于“依次”放球,所以构造出的一定是有向无环图。Code每次重新建边,不加优化的版本#include<vector>#include<c原创 2017-08-25 21:38:53 · 304 阅读 · 0 评论 -
【网络流24题】圆桌聚餐(二分图)
传送门 圆桌聚餐I think 增设源汇点S T,S向单位连容量为单位人数的边,每张桌子向T连容量为桌子容纳人数的边,每个人向每张桌子连容量为1的边,整张图的最大流==总人数时即有解。Code#include<cstdio>#include<queue>using namespace std;const int sm = 450+5;const int sn = 82000;co原创 2017-08-25 21:44:17 · 417 阅读 · 0 评论 -
【网络流24题】最长递增子序列(DP+最大流)
传送门 最长递增子序列 题意:计算最长不降子序列长度s与数量,以及多次使用首末元素之后最多取出多少长度为s的最长不降子序列。I think 第一问DP求出f[i],表示以第i位为首位的最长不降子序列长度len,二三问网络流求解。增设源汇点S T,S向f[i]==len的点i连边,f[i]==1的点向T连边,满足i< j&&a[i]< =a[j]&&f[i]==f[j]+1的点对原创 2017-08-25 21:53:53 · 429 阅读 · 0 评论 -
【网络流24题】试题库(二分图+最大流)
传送门 试题库I think 点集x,y分别放置试题与类型。源点向x集点连容量为1的边,x集点向y中其所属类型连容量为1的边,y集点向T连容量为所需量的边,求解最大流若等于总题数则有解。Code#include<cstdio>#include<queue>#include<vector>using namespace std;const int sm = 1100;const i原创 2017-08-25 22:02:29 · 446 阅读 · 0 评论 -
【网络流24题】方格取数(二分图染色+最大权独立点集+最小割)
传送门 方格取数 题意:给定权值棋盘,相邻棋子不能同时选择,求能够选出的棋子集合最大权。I think 对原图进行黑白染色,即将图分为x,y两个集合,增设源汇点S,T,S向x集合中连边,y集合中的点向T连边,边的容量均为点权,最后将x集合中的点向y中与之相邻的点连边,容量为Inf。答案最大权独立点集=∑\sum点权-最小割 。 要明确删去所有割边之后,仍然与源/汇点相原创 2017-08-25 22:13:46 · 569 阅读 · 0 评论 -
【网络流24题】骑士共存问题(二分图染色+最大权独立子集+最小割)
传送门 骑士共存问题I think 同方格取数相同,是最大独立集问题.连边之后,找到一个割,此时与S和T仍然连接的点必然不在一个集合中,点的数量就是答案.要答案尽量大,于是就找出最小割即可.至于如何染色,应当从题给的图中得到启发。Code#include<cstdio>#include<queue>using namespace std;const int sm = 4e4+10;原创 2017-08-25 22:17:36 · 454 阅读 · 0 评论 -
【板子】Dinic算法
Dinic是求解网络最大流的经典算法之一,它由最简单但效率不够的寻找增广路算法优化而来。原创 2017-08-21 09:38:58 · 755 阅读 · 0 评论