最大流部分
来源:互联网 发布:mac 任务管理器快捷键 编辑:程序博客网 时间:2024/06/06 01:40
最大流水题:hdu1532、hdu3549、hdu2732(拆点、经典题目)
hdu3572
isap,水,建图:
源点0和每个任务,都建立一个0到任务ni的容量为pi的边;
对于某个任务,其可以执行的时间在si到ei,那么这个任务到si
至ei(含临界)这些时间点都建立容量为1的边;
每个时间点到汇点建立一条容量为m的边。
hdu4309
4000多次的网络流。。。
建图:
0到每个城市连边、容量为该城市人口;
好的桥,连容量为无上限的边;
坏的桥,未修复时连容量为1的边、修复后连容量无上
限的边。(这个好坑啊。。没修复的时候也可以走一个人,
可以1Y的代码愣是因为这个检查了一天呀。。。)
防空洞,直接从防空洞的起始点a到e(终点)连边,没必
要再在边a和b之间虚拟一个点x而建立a到x、x到b、以及x到
e的边。直接建立a到e的边就行。
hdu3605
最大流+状态压缩、判满流,难度一般。
10W个人么、所以直接网络流是必定TLE的;
不过注意到m只有10、所以10W的点(人)是可以合并的,用val[i]表示
可以在i的二进制表示中、第j位表示为1的、第j个星球生存的的人的总数,
这样合并之后就最多只有(1<<10)个节点了,网络流之(第j位为1、表示可以
在第j个星球生存)。
hdu1569
网络流,最大点权独立集=总权值-最小点权覆盖集。
最小割的应用,建图跑网络流,求出最小割,那么把这个最小割移除掉,
从源点到汇点就一毛钱都不能到达了。用sum减去这个最小割(也就是最大流)
既为所求。
上面说的很不详细、建图呀什么都没有说,读不懂很正常= =,因为有更
详细的,看这个论文(不是ppt)吧:胡伯涛《最小割模型在信息学竞赛中的应
用》,直接跳到第五部分读就行了。
hdu2883
网络流+离散化。
和hdu3572一样的题,只是时间范围是100W,介个有点儿多了。
不过才200个人么,所以点的数量不多,离散化一下就行了(比如有对
于ti和ti+1这两个时间点,都只有第j号任务可以执行,那么完全可以
把ti和ti+1这两个时间点合并,从而和汇点建立一条容量为2个单位的
边(我是将ti+1点并入了ti,j任务和ti建边、而省掉ti+1))。
这个题给的时间和hdu3752的有一点儿不同,对于si和ei,可以用
来烤肉的时间是ei-si;而对于hdu3752题,对于一个任务有si、ei,那
么可以执行这个任务的单位时间段有ei-si+1条,既题意对待临界的方
式不同。
刚开始这点儿没有想清楚,做2883这个题的时候就用了别的拆点
的方法去处理临界了,处理完才发现这个题不用考虑这个。。。
hdu3572
isap,水,建图:
源点0和每个任务,都建立一个0到任务ni的容量为pi的边;
对于某个任务,其可以执行的时间在si到ei,那么这个任务到si
至ei(含临界)这些时间点都建立容量为1的边;
每个时间点到汇点建立一条容量为m的边。
hdu4309
4000多次的网络流。。。
建图:
0到每个城市连边、容量为该城市人口;
好的桥,连容量为无上限的边;
坏的桥,未修复时连容量为1的边、修复后连容量无上
限的边。(这个好坑啊。。没修复的时候也可以走一个人,
可以1Y的代码愣是因为这个检查了一天呀。。。)
防空洞,直接从防空洞的起始点a到e(终点)连边,没必
要再在边a和b之间虚拟一个点x而建立a到x、x到b、以及x到
e的边。直接建立a到e的边就行。
hdu3605
最大流+状态压缩、判满流,难度一般。
10W个人么、所以直接网络流是必定TLE的;
不过注意到m只有10、所以10W的点(人)是可以合并的,用val[i]表示
可以在i的二进制表示中、第j位表示为1的、第j个星球生存的的人的总数,
这样合并之后就最多只有(1<<10)个节点了,网络流之(第j位为1、表示可以
在第j个星球生存)。
hdu1569
网络流,最大点权独立集=总权值-最小点权覆盖集。
最小割的应用,建图跑网络流,求出最小割,那么把这个最小割移除掉,
从源点到汇点就一毛钱都不能到达了。用sum减去这个最小割(也就是最大流)
既为所求。
上面说的很不详细、建图呀什么都没有说,读不懂很正常= =,因为有更
详细的,看这个论文(不是ppt)吧:胡伯涛《最小割模型在信息学竞赛中的应
用》,直接跳到第五部分读就行了。
hdu2883
网络流+离散化。
和hdu3572一样的题,只是时间范围是100W,介个有点儿多了。
不过才200个人么,所以点的数量不多,离散化一下就行了(比如有对
于ti和ti+1这两个时间点,都只有第j号任务可以执行,那么完全可以
把ti和ti+1这两个时间点合并,从而和汇点建立一条容量为2个单位的
边(我是将ti+1点并入了ti,j任务和ti建边、而省掉ti+1))。
这个题给的时间和hdu3752的有一点儿不同,对于si和ei,可以用
来烤肉的时间是ei-si;而对于hdu3752题,对于一个任务有si、ei,那
么可以执行这个任务的单位时间段有ei-si+1条,既题意对待临界的方
式不同。
刚开始这点儿没有想清楚,做2883这个题的时候就用了别的拆点
的方法去处理临界了,处理完才发现这个题不用考虑这个。。。
0 0
- 最大流部分
- 《算法导论》笔记(18) 最大流 含部分习题
- 计算机哪个部分辐射最大
- php筛选最大最小部分的数组
- 最大流-最大利益
- 找出二叉树中最大的二叉查找树部分
- url访问全环节中最大长度部分测试
- [C#]C#如何求出两个字符串最大的公共部分
- (华为)求最大公共字符串长度,大小写部分
- PHP之找任意两个字符串的最大相同部分
- TexView 设置最大字数 超过部分显示省略号
- 最大子段和部分问题(DP)
- 【面试题之算法部分】最大和连续子数组
- MapReduce源码对写MR application帮助最大的部分
- TextView最大长度限制,超出部分省略号显示
- python numpy 部分排序 寻找最大的前几个数
- kmp求前缀和后缀的最大重复部分
- 最大流
- 二维情形下的最接近点对问题
- 向量时钟Vector Clock in Riak
- 前端笔记 CSS 5
- Android学习笔记(41):File存储
- mysql_query返回false原因
- 最大流部分
- 剑指Offer--025-二叉树中和为某一值的路径
- SDWebImage介绍
- Unix:基础知识文件和目录
- papi酱广告拍出2200万 拍卖收益将捐赠给母校
- 换乐网redis应用分析
- 设置定时关机命令
- 在iOS 8中使用UIAlertController
- Javaweb--如何让登陆页面的表单不默认显示账号和密码