您的位置:首页 > 其它

最大流部分

2016-04-21 23:54 232 查看
最大流水题: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这个题的时候就用了别的拆点

的方法去处理临界了,处理完才发现这个题不用考虑这个。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: