网络流好题
一开始以为是最小费用最大流
因为要求最小的时间,我们直接限制流量,然后加上费用然后跑最小费用最大流
但是正确的图一直建不出来
然后到网上搜了一下题解,说是二分再加最大流满流判断
先构图吧
从S到每一个' . '点连一条流量为1的点,表示为一个人
然后我们对每一扇门都进行拆点,拆除t个点(t为所需时间,二分出来的)
然后每个点向T和下一个时间的点分别连容量为1和inf的边,表示这个门可以在每个时间里出来一个人,多余的人等到下一个时间
然后我们spfa或者dfs一下,每一个人到每一扇门至少需要的时间,然后直接把这个人连向所有门的第t个点(t为所需时间)
然后二分一下至少需要的时间,跑一边最大流,判断是否满流就可以辣
然后感觉我说的并不是特别好,有疑问的在下面评论即可,我会及时作出回答