欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
S40903.9-3 量取魂泉
9-3 量取魂泉
量取魂泉
意识迷宫的第三层,是一片由漂浮木桶组成的湖泊。湖面上没有水,只有乳白色的雾气和无数悬在半空的木桶。每个木桶上都刻着容量刻度,有些已经盛满了泛着幽光的液体,有些则是空的。
"魂泉。"Echo说,"Zero用这些木桶藏了不同分量的意识碎片。你要把它们互相倾倒,直到某个木桶里出现特定的分量。"
"倒来倒去?"CC蹲下去,用手指敲了敲一个空桶,"这有啥子难的?"
"难在最少步数。"你说,"而且不能凭空变出液体,也不能凭空倒掉——你只能把一个桶倒满、倒空,或者倒进另一个桶里,直到倒空或倒满为止。每一次操作都要算一步。"
"那如果反复倒来倒去,不是会兜圈子?"
"所以你要记住每一组水位组合是否曾经出现过。"你说,"如果某个组合已经试过,再走到同样的局面就是浪费。只有全新的水位组合才值得继续探索。"
你开始推演。三个木桶的容量像三座不同高度的塔,液体在它们之间流动,每一次倾倒都改变着全局的平衡。你把每一种水位组合都刻进记忆—— 是一个状态,一旦重复就不再踏入。你像在一个看不见的迷宫里穿行,每一个岔路口都是一次倾倒的选择。
屏幕上跳出了结果:最少需要四十七步才能量取到目标分量。
"又是四十七。"CC说。
"四十七步。"Echo的声音里有一丝若有若无的笑意,"Zero把它当作默认的烙印——当你不知道答案该写什么时,它就会出现。"
"那这答案可信不?"
"有时候可信。"Echo说,"有时候……是陷阱。"
题目描述
三个桶,容量分别为 。初始状态给定,求达到目标状态的最少倒水步数。
输入格式
,初始状态,目标状态。
输出格式
最少步数,或不可能。
输入样例
4 4
6 2 1 3
输出样例
4���������������
4���������������
6���������������
2���������������
1���������������
3���������������
����������������
����������������
����������������
����������������
����������������
����������������
����������������
����������������
����������������
����������������
提示
- 将每个水位组合视为一个状态,记录已访问的状态避免循环。
- 六种操作:倒满、倒空、互倒。
倒水问题解开后,湖面上出现了一座桥——由光构成的桥,通向第四层。
"走吧。"Echo说。
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |