[网络流] 网络流(22/24)题题解集合
来源:互联网 发布:2017中国大数据50强 编辑:程序博客网 时间:2024/06/10 08:43
题解合集,题目来源于本校题库。
如果想要原题或SPJ,可以向herano1999@gmail.com发邮件。
学校题库上的要求可能与原题不同,我将标注出来,并以本校题库为主。
注:所有最大流的实现均为Dinic算法,费用流的实现均为Edmonds Karp算法,连边均为有向边。
1、飞行员配对方案问题
裸二分图匹配,可以直接Hungary算法。也可以上最大流。
建立源点
本校题库并未要求输出方案。Hungary输出result数组,最大流跑一边满流边即可。时间复杂度为
Code
2、太空飞行计划问题
最大权闭合图问题。转化为最小割问题。然后根据最大流=最小割,即为求最大流问题。
建立源点
下面是正确性解释(By Byvoid):
定义一个割划分出的S集合为一个解,那么割集的容量之和就是(未被选的A集合中的顶点的权值 + 被选的B集合中的顶点的权值),记为Cut。A集合中所有顶点的权值之和记为Total,那么Total - Cut就是(被选的A集合中的顶点的权值 - 被选的B集合中的顶点的权值),即为我们的目标函数,记为A。要想最大化目标函数A,就要尽可能使Cut小,Total是固定值,所以目标函数A取得最大值的时候,Cut最小,即为最小割。
原题要求输出实验方案,本校题库未要求输出。方案即为
Code
3、最小路径覆盖问题
题干说的什么玩意,最后求一个最大流……
对于原图的每一个点拆成两个点
下面为正确性解释(By Byvoid):
对于一个路径覆盖,有如下性质:
1、每个顶点属于且只属于一个路径。
2、路径上除终点外,从每个顶点出发只有一条边指向路径上的另一顶点。
所以我们可以把每个顶点理解成两个顶点,一个是出发,一个是目标,建立二分图模型。该二分图的任何一个匹配方案,都对应了一个路径覆盖方案。如果匹配数为0,那么显然路径数=顶点数。每增加一条匹配边,那么路径覆盖数就减少一个,所以路径数=顶点数 - 匹配数。要想使路径数最少,则应最大化匹配数,所以要求二分图的最大匹配。
注意,此建模方法求最小路径覆盖仅适用于有向无环图,如果有环或是无向图,那么有可能求出的一些环覆盖,而不是路径覆盖。
原题要求输出方案,本校题库并未要求。方案即为
Code
4、魔术球问题
转化为答案判定性问题,二分答案,把每个球看成一个点,如果这两个球可以相邻,就将这两个球连接起来,建立源点
原题要求输出方案,本校题库未要求。方案输出同上题。
时间复杂度
Code
5、圆桌问题
最大流问题,建立源点
Code
6、最长递增子序列问题
请注意:这里的最长递增子序列指的是最长不降子序列!
第一问经典DP题,
第二问最大流,对于一个位置拆成两个点
第三问就是把
时间复杂度为
Code
7、试题库问题
类似圆桌问题的建边,建立源点
本校输出为:
输出组卷方案。如果有解则在第一行输出1,文件第
i+1 行输出类型i 的题号。如果有多个满足要求的方案,只要输出1个方案。如果问题无解,则输出0。(为方便SPJ,输出与原题输出不同)
时间复杂度为
Code
8、机器人路径规划问题
大神题,至今没人用网络流解出(解出的都是错的……),可以网搜参考一些玄学IDA*等算法。数据可能有误。
9、方格取数问题
因为方格均需不相邻,所以将棋盘黑白染色,所有相邻格子的颜色互不相同,建立源点
Code
10、餐巾计划问题
最小费用最大流问题。对于每天拆成两个点
Code
11、航空路线问题
接着拆点,对于每个城市拆成两个点
Code
12、软件补丁问题(补丁VS错误)
二进制压状态,把每个二进制状态当做点,跑最短路即可。可以隐式建边,用二进制判断是否可以转移。网上题解多得是我就不说了。时间复杂度
Code 这根本不是网络流啊。
CTSC1999太深了。(这是第一个)
13、星际转移问题
像魔术球问题一样,二分答案,变成答案判定性问题。首先判断是否有一条从地球到月球的路线,如果没有果断无解,这个判断可以并查集完成。
二分答案的判定靠最大流判,如果这个答案为
时间复杂度
还是CTSC1999的题。
Code
14、孤岛营救问题
这TM不是拯救大兵瑞恩那道题吗(又又又是CTSC1999)(我出生那年的CTSC发生了什么……)。
潜入辛迪加做过吗?
没做过?
分层图,对于原图建立出
Code
15、汽车加油行驶问题
接着分层图,建立
1、如果油箱不满(
2、如果油箱不满(
3、如果油箱不空(
4、如果油箱不空(
然后就是求个最短路了……答案为
Code
16、数字梯形问题
最大费用最大流问题,对于每个点
Code
17、运输问题
接着费用流,建立源点
Code
18、分配问题
还是费用流,建立源点
Code
19、负载平衡问题
费用流(多少个了…….),因为要使仓库的库存数量相同,所以这个数值便是仓库的库存数量的平均值,记平均值为
Code
20、深海机器人问题
费用流(好烦啊……),建立源点
Code
21、最长k 可重区间集问题
接着费用流,其实是最大权不相交路径问题。离散化所有端点,建立源点
Code
22、最长k 可重线段集问题
Byvoid:这题和上一题一样。
完全不一样啊,这题出现斜率不存在的边就相当于出现了自环,还跑什么最大费用最大流……并且上升到二维就有可能不能单纯离散化而需要奇奇怪怪的维护方式了……所以这道题和机器人路径规划问题一样看看就行了……
就是这两道题使得(22/24)的……
23、火星探险问题
费用流,对于一个位置拆成两个点
Code
24、骑士共存问题
类似于方格取数问题,先将棋盘黑白染色,题目中图片显示如果一个格子放了骑士,那么不能放骑士的格子颜色与这个格子不同。于是建立源点
Code
- [网络流] 网络流(22/24)题题解集合
- 网络流24题一句话题解集合
- 网络流24题解题报告小结
- 线性规划与网络流 24 题 题解
- 网络流题集合
- 网络流题解分布
- [网络流]matrix题解
- 网络流 某些题解
- 【网络流24题】----题解(部分,持续更新...)
- 网络流24题 题解 (部分) 更新中
- 网络流24题之 飞行员配对方案问题 题解
- Dinic 网络流24题 圆桌问题 题解
- HDU 3605 网络流题解
- 蒟蒻的网络流24题解题记
- POJ 1273 网络流最大流 题解
- CTSC1999/wiki1034 家园 题解 网络流+相对论
- 【BZOJ1475】【网络流】方格取数 题解
- BZOJ 1066: [SCOI2007]蜥蜴 网络流题解
- yum 安装启动httpd
- ubuntn 16.04.2下caffee的安装教程
- 被坑水题——Codeforces Round #408 (Div. 2)
- 用octopress搭建博客时遇到的一些问题
- 设计模式_装饰模式概述和使用
- [网络流] 网络流(22/24)题题解集合
- 指针和数组的区别 (从下标运算符[ ]看)
- ARP协议和RARP协议
- celery 分布式框架详解
- cz1-tomcat项目导包错误导致的项目加载失败
- Cookie Session
- 菜鸡的第一次面试经验总结
- mysql 主从复制
- 设计模式之命令模式