POJ3057 Evacuation 题解
题意:给定一张字符地图,
#
代表墙,.
代表空地,D
代表门。初始每个空地都有一个人。
每个人可以在一秒内向上下左右移动一格。一个空地可以站任意多人。一个人走到门视作逃生成功。但是门很窄,一个时刻内只能有一个人进门。
问所有人逃生的最短时间。\(n\le 12\)。
注意到门一个时刻只能进一个人。考虑把门拆点。
先从每个门 BFS,求出每个人到每个门的最短距离。
第一时刻,把所有门在第一时刻的对应点建出来。对于一个门和一个人,如果一个人能到达这个时刻的门,这个人对应的点向这个时刻的门连边。
这是个二分图,然后找最大匹配,就能判断是否可以全逃生。二分判定即可。