首页 > 代码库 > SPOJ 13041 BNU 28769 The Black Riders 二分+费用流 建图

SPOJ 13041 BNU 28769 The Black Riders 二分+费用流 建图

题目链接:

题意:

给定n个人 m个逃生洞穴 至少k个人进入逃生洞穴 挖洞时间c

下面n*m的矩阵表示每个人到每个洞需要的时间。

一个洞穴开始只能容纳一个人,可以被拓展一次,即变成可以容纳2个人(一个洞穴只能被拓展一次)

当a进入洞穴后不会开始拓展,直到有一个人b在洞穴门口等,a才会开始拓展空间,拓展的时间的c,c时间后b才能进入洞穴。


问至少k个人进入洞穴的最短时间。(数据保证有解)

我们可以认为一个洞穴里面有2个房间,而第二个房间就相当于某个人跑到了这个洞穴然后这个人自己开始挖,则花费就是到达洞穴的时间+c

跑个费用流,看最后流量是否>=k

把洞穴拆成2个点,人和源点建边,洞穴的2个拆点都和汇点建边。

每个人和洞穴的2个点建边,流量是1,费用是距离,这样对于每个人一定是先跑进第一个房间,因为费用小,则当这个人跑到第二个房间时说明第一个房间一定有人了。


SPOJ 13041 BNU 28769 The Black Riders 二分+费用流 建图