返回

编程之战

首页
关灯
护眼
字体:
第六十章 生化危机(下)
书架管理 返回目录
    浣熊镇上万米的高空中,两架战机组成的编队眨眼间掠过。

    留给杨成等人的时间不多了。

    “成哥,指挥官发过来了地图”。

    动物学家兼陆战队员科勒文少尉将手机递给杨成,自己则呆在一旁负责警戒。

    他们周边的地面上,躺着好几具尸体。

    都是些被吸引过来的丧尸,然后被科勒文用他最擅长的擒拿格斗术给ko了。

    杨成拿起手机,仔仔细细一看,发现是一个3x5的坐标系。

    [true,false,true]

    [true,false,true]

    [true,false,true]

    [true,true,true]

    [true,false,true]

    他们目前所处的位置,是地图的左上方,坐标(1,1),或者说是第一行第一列。

    而撤离的目的地,处于地图的右上方,坐标(1,3),或者说是第一行第三列。

    true(真)代表该地区是安全的。

    false(假)代表丧尸的聚集区,一旦进入,肯定有去无回。

    现在的关键是得找出一条安全的撤离路线来。

    杨成紧缩眉头,用心思考,丝毫没有被周边的环境所影响。

    程序员的素质在这一刻得到了体现。

    这是一个简单的图论问题,即查找图中两点之间的路径。

    因为这个图本身并不大,所以效率问题暂时不用考虑。

    最快捷,最方便的做法,是从这个出发点开始,执行深度优先遍历。

    在遍历的过程中记录分支(路径)。

    而一旦达到了目的地,就应该停止遍历,返回当前的路径。

    图的深度优先遍历得到的路径,不一定是最短路径。

    但在这个问题上,可以看出,只存在一条可能的路径,也就是得到的这条。

    其实也可以使用广度优先遍历。

    两者唯一的不同是:

    前者使用栈来管理遍历,而后者会使用队列。

    杨成专心致志,很快编写代码,得出了一条安全的路径。

    [down,down,down,right,right,up,up,up]

    “科兄,解出来了,咋们赶紧撤”。

    杨成回过神来,环顾四周。

    然后,他看见方圆几公里的丧尸都在朝这边聚集。

    “呃”

    杨成举起双手。

    “咋们真的要困死在这里了吗?!”

    “为啥都解出来了,还没半点反应呢?”

    杨成心情糟透了。

    一想到即将被丧尸们分而食之,他就有种想饮弹自尽的冲动。

    “成哥,看那是啥?”

    科勒文手指着半空中。

    只见一头通体漆黑的钢铁巨兽带着降落伞缓缓坠地,发出沉闷的一声巨响。

    这是一辆重达几十吨的重型坦克。

    在这种初级的丧尸面前,就跟绞肉机差不多。

    杨成还在那里一愣。

    那科勒文却是一个翻身上了坦克,打开顶盖,然后冲着杨成喊道:

    “没时间解释了,快上车!”

上一章 目录 下一章