HBC237065保卫家园,数据结构,STL,贪心骑士战胜魔王题解

北笙凉宸 算法基础篇 94 0
想要检验自己的编程水平?来试试全网最全C++题库,让您在挑战中不断进步。
小宝在玩一款模拟游戏, 地图是一个由′.′,′#′,′′'.','#', '*'′.′,′#′,′′三种字符组成的大小为nmn*mnm 的方格图,其中 ′.′'.'′.′代表空格(空格可以被占据)、′#′'#'′#′代表城墙(城墙不可被通过)、′′'*'′′代表一个普通骑士,初始时每个普通骑士都单独占据了地图上自己所在的那一个格子, 每隔一秒,所有骑士都会进行一轮拓

小宝在玩一款模拟游戏。 地图是一个由 ′.′,′#′,′∗′'.','#', '*'′.′,′#′,′∗′ 三种字符组成的大小为 n∗mn*mn∗m 的方格图,其中 ′.′'.'′.′ 代表空格(空格可以被占据)、′#′'#'′#′ 代表城墙(城墙不可被通过)、′∗′'*'′∗′ 代表一个普通骑士,初始时每个普通骑士都单独占据了地图上自己所在的那一个格子。 每隔一秒,所有骑士都会进行一轮拓展。每轮拓展,骑士将会把和自己已经占据的格子相邻(这里的“相邻”指代两个格子具有共用边,下同)且未被其它骑士占领的格子给占据。若在一轮拓展中,有多个骑士想占据同一个未被占据的格子,那么这个格子将会被这些骑士里初始坐标中横坐标最小的骑士占据,若初始坐标中横坐标最小的骑士有多个则这个格子会被横坐标最小的骑士中纵坐标最小的骑士所占据(这样的骑士只有一个)。 游戏开始时小宝可以指定若干个普通骑士赋予他们圣光,将他们进阶为圣光骑士,但圣光不能改变骑士们拓展领域的规则。 游戏中有一个大魔王,它会从地图的左上角(既编号为 (1,1)(1,1)(1,1) 的格子)向位于右下角(既编号为 (n,m)(n, m)(n,m) 的格字)的村庄侵蚀过去(通过相邻且可以到达的格子),魔王的侵蚀速度可以认为是无穷大(瞬间即可到达(如果可以到达的话))的,魔王可以通过普通骑士所占据的格子但是不能通过被圣光骑士所占据的格子。 圣光骑士需要保护村庄(不让魔王到达村庄),小宝想知道为了阻止魔王侵蚀村庄,至少需要多久的时间给骑士进行防守(占据格子),且在时间最短的前提下至少需要给几个骑士赋予圣光。

HBC237065保卫家园,数据结构,STL,贪心骑士战胜魔王题解
-第1张图片-东莞河马信息技术
(图片来源网络,侵删)

标签: HBC237065保卫家园 数据结构 STL 贪心骑士战胜魔王题解