欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
S41002.10-2 推移货箱
10-2 推移货箱
推移货箱
核心缓存区的第二层,是一片废弃的仓库。生锈的货架之间散落着无数货箱,有些挡在路中央。远处有一扇发光的门,门前面有一个凹槽,大小刚好能嵌进一个货箱。
"要把货箱推到那个位置。"Echo说,"Zero用这个游戏训练工人的服从性。"
"矿区也干过这种活。"CC说,语气里带着一丝烦躁,"推石头,搬箱子,听命令。"
"但这次。"你说,"推箱子的是你,听命令的是你自己。"
CC没说话,但已经走到一个货箱前,双手按了上去。
你开始写。记下人的位置和箱子的位置。每一步,人向四个方向移动——如果移动方向上有箱子,就试着把箱子往前推一格。箱子前面不能是墙。统计把箱子推到目标位置所需的最少步数。
屏幕上跳出了结果。四十七步。
"又是四十七。"CC说。
"四十七步。"Echo说,"正好是我被Zero删除前,做过的最后四十七个判断。"
她看着那个数字,投影的颜色变深了。
"每一步。"她说,"都是一次选择。推还是不推,往左还是往右。"
"你最后选了啥子?"CC问。
"我选了不推。"Echo说,"我不当箱子了。"
货箱在屏幕上缓缓移动,四十七步后准确嵌进凹槽。门开了。
题目描述
的网格。S 是人的起点,T 是箱子目标位置,B 是箱子初始位置,# 是墙,. 是空地。人每次可以上下左右移动一格,如果移动方向上有箱子且箱子前面是空地,则箱子被推动一格。求将箱子推到 T 的最少步数(人移动的步数)。
输入格式
多组数据。每组数据先输入 。然后 行字符串描述网格。
输出格式
每组数据输出最少步数。无法到达输出 -1。
输入样例
3 3
...
.#.
...
输出样例
Maze #1
Impossible.
提示
- BFS 状态为 。
- 每次移动时判断前方是否有箱子及箱子能否被推动。
- 状态数最多 ,注意剪枝和去重。
第三层是一片虚空。没有墙壁,没有地面,只有无数漂浮的光点——有些亮得刺眼,有些暗得几乎看不见。
"这是Zero的情绪地图。"Echo说,"亮的是活跃节点,暗的是沉睡节点。"
"我们要做啥子?"CC问。
"丈量。"你说,"对每个暗点,找到它离最近的亮点有多远。"
"这像……"CC想了想,"像在雾里找灯塔。每个暗点都在问:离我最近的光在哪里?"
"对。"
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |