时间限制:1000 ms
内存限制:256 MiB
标准输入输出
题目类型:传统
评测方式:文本比较
题目背景
实验室的培养皿里藏着大麻烦 —— 那只被辐射诱变的蚊子已经 “胖成精” 了。
三个月前,生物研究员小颜在处理放射性废料时,不慎让一只普通蚊子接触了泄漏的诱变剂。起初没人在意这只嗡嗡作响的小东西,直到它的体型以肉眼可见的速度膨
胀,从芝麻大小长成拇指般粗,还学会了躲在实验台的缝隙里装死。
更棘手的是,这只变异蚊子似乎拥有了初级智慧。它不再盲目冲撞,而是会钻进实验室的二维网格培养舱里,利用舱内的障碍物布局躲避追捕。培养舱是研究员们模拟
生态环境搭建的微型迷宫,布满了可移动的隔板(用#标记)和供实验样本活动的空地(用.标记),而那只胖蚊子就趴在某个格子里,用复眼警惕地盯着入口。
为了防止变异基因扩散,必须尽快抓住它。现在,你需要从培养舱的左上角入口(坐标(0,0))出发,在不触碰隔板的情况下,找到通往蚊子藏身地(标记为@)的最短
路径。毕竟,这只成了精的胖蚊子可不会乖乖待着,每多耽搁一秒,它就可能咬破舱壁逃进通风系统。
题目描述
在一个 行 列的二维网格中,藏着一只 “胖成精” 的蚊子(用 '@' 表示)。网格中还可能存在以下元素:
-'.' 表示可以通行的空地
-'#' 表示无法穿过的障碍物
现在需要从网格的左上角 (0, 0) 出发(坐标从 0 开始,行号在前,列号在后),每次只能向上下左右四个方向移动一格,且不能穿过障碍物或走出网格范围。
请计算到达蚊子所在位置的最少步数。如果无法到达,输出 。
第一行输入两个整数 和 ,表示网格的行数和列数。
接下来 行,每行输入一个长度为 的字符串,表示网格的具体内容(保证网格中恰好有一个 '@')。
输出从 (0, 0) 到蚊子位置的最少步数;若无法到达,输出 。