## $T2.$逃离卢浮宫
### $Description$
$MCM/ICM$(国际大学生数学建模竞赛)是一个和$ACM/ICPC$同样有趣的比赛。如果你参加了$MCM/ICM 2019$那么你一定知道D题,是一道关于卢浮宫紧急疏散的问题。具体的题目描述的简要翻译如下:
随着法国的恐怖袭击次数日益增加,在公共场所紧急疏散人流的方案变得尤为重要。你的$ICM$队伍被邀请为卢浮宫设计一个逃离方案,使得可以安全且快速的疏散卢浮宫的所有游客。你的方案需要具体考虑一些实际的情况。
$qleonardo$也参加了$MCM/ICM$,为了解决这个问题,他考虑简化问题,并且使用元胞自动机模型去模拟疏散的过程。当然了,我们现在是在参加$OI$,而是不是$MCM/ICM$,所以要求各位解决的问题没有那么复杂。
----
简单来说,我们把卢浮宫的地图分成一个个小方格组成的矩阵,然后每个人所在的位置就是在某个方格中,可以用坐标$(x,y)$来表示。这样,我们就可以让每个人按照一个固定的方式去逃离卢浮宫,即每个人往距离他最近的出口移动。但是,出口的宽度是有限的,我们假定每个出口在单位时间内只能走出一个人,然后每个人在单位时间内可以向相邻四个位置移动一格。另外,我们认为卢浮宫的内部足够宽敞,意味着除了出口之外,每个格子可以同时有多个人。
在出口处,可能会有出现很多人争夺一个出口的情况,此时我们认为那些强壮的人会优先逃出卢浮宫,而其他人则只能停留在原地。你的任务是输出每个人按照以上规则移动,最后逃离卢浮宫的时间。
你需要注意,人不能穿过障碍物并且只能从出口做出来。如果距离一个人最近的出口有多个,那么优先走向上方的出口,如果还有相同的,那么走左侧的。
----
$Solution$
考虑从出口出发$bfs$覆盖人。
出口$ex_i$首先覆盖到的人都应该以$ex_i$为出口。
然后定义结构体。
先比较时间,再比较强壮程度。
每种时间开一个$priority\;queue$即可
原文:https://www.cnblogs.com/ATURIC/p/11303852.html