AT_xmascon19_c.Sokoban
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Sokoban(推箱子)
题意翻译
小兔子的房间是一个有H行W列个格子的长方形。有三种格子,分别是“一般格子”、“目标位置格子”和“固定家具格子”。起初,小兔子和它的行李位于互不相同的“一般格子”上。
把从上往下数第i行,从左往右数第j列的格子记作Ai,j,一个格子可能出现以下几种状态:
.:空的一般格子R:小兔子的位置a:一般格子,上面有小兔子的行李O:目标位置格子,上面没有行李@:目标位置格子,上面有行李#:固定家具格子
小兔子想要将所有的行李都放到目标位置上。在接下来的每次行动中,它都可以选择以下两种行动方式中的一种执行:
- 走向它所在格子的上下左右个格子中的任意一个空的格子
- 走向它所在格子的上下左右个格子中的任意一个有行李的格子,同时行李向小兔子移动的方向移动一格
请求出小兔子最少的行动次数。
此外,该问题的所有输入文件都是公开的(请参照“评测”一段)
输入格式
共H+1行,第一行输入两个整数H,W
接下来的H行,每行输入W个字符,表示小兔子的房间
输出格式
输出最小的行动次数
输入输出样例
输入#1
6 7 ####### #R....# #..@..# ###a### ###O### #######
输出#1
10
说明/提示
- 5≤H≤400
- 5≤W≤400
- Ai,j(1≤i≤H,1≤j≤W)是
.,R,a,O,@和#中的一个。 - 输入数据中只有一个
R - 输入数据中
a和O的数量相等,且多于一个 - 输入数据保证房间的边缘都是
# - 输入数据保证存在能将所有的行李都放到目标位置上的方法
评测
- 共有五个测试点,分别为
01.txt,02.txt,03.txt,04.txt,05.txt,各个测试点占分不同,分别为7分,11分,17分,25分和40分。 - 在此处下载输入数据
- 你也可以实际操作小兔子在输入数据对应的房间中收视行李,链接在这里(对应的html文件已包含在下载的输入数据中)
(顺便解释一下这个实操网站上的内容:这里面包含了样例,五个测试点的输入和一个附加房间(“omake”,不包含在输入数据中),用上下左右的方向键或者WASD又或是HJKL操作小兔子,网站中的“読み込み”是刷新的意思,“手数”是当前的步数,换地图后要点一下“読み込み”才会显示对应的房间)
输入解题思路,AI测评打分。不知道怎么写?