A3010 | 倒水问题
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
##输入输出已更改,请不要直接提交原先的代码。
假定两个水壶$A$和$B$,供水量不限。可以使用三种方法装水:
- 给一个水壶装水;
- 把一个水壶倒空;
- 从一个水壶倒进另一个水壶。
当从一个水壶倒进另一个水壶时,如果第一个水壶倒空,或者第二个水壶装满就不能再倒了。例如,一个水壶$A$是$5$加仑和另一个水壶$B$是$6$加仑,水量是$8$加仑,则从水壶$A$倒进水壶$B$时,让水壶B充满水而水壶$A$剩$3$加仑水。
问题由3个参数:$C_a$,$C_b$和$N$,分别表示水壶$A$和$B$的容量,目标水量$N$。解决问题的目标是,给出一系列倒水的步骤,使水壶$B$中的水量恰好是$N$。
假定两个水壶$A$和$B$,供水量不限。可以使用三种方法装水:
- 给一个水壶装水;
- 把一个水壶倒空;
- 从一个水壶倒进另一个水壶。
当从一个水壶倒进另一个水壶时,如果第一个水壶倒空,或者第二个水壶装满就不能再倒了。例如,一个水壶$A$是$5$加仑和另一个水壶$B$是$6$加仑,水量是$8$加仑,则从水壶$A$倒进水壶$B$时,让水壶B充满水而水壶$A$剩$3$加仑水。
问题由3个参数:$C_a$,$C_b$和$N$,分别表示水壶$A$和$B$的容量,目标水量$N$。解决问题的目标是,给出一系列倒水的步骤,使水壶$B$中的水量恰好是$N$。
输入格式
第一行为数据组数$T$。
接下来的$T$行,每行三个数字$C_a$,$C_b$和$N$,意义如题目所示。
$T$不超过$30$组,$0<C_a≤Cb$,$N≤C_b≤1000$,且$C_a$和$C_b$互质。
接下来的$T$行,每行三个数字$C_a$,$C_b$和$N$,意义如题目所示。
$T$不超过$30$组,$0<C_a≤Cb$,$N≤C_b≤1000$,且$C_a$和$C_b$互质。
输出格式
输出共为$T$行,第一个数字为要达成的完成次数$a_i$(题目保证存在解)。
接下来$a_i$个数字,表示各种操作:
- 1操作:$fill A$ 意为给$A$灌满水
- 2操作:$fill B$
- 3操作:$empty A$ 意为将$A$中水倒空
- 4操作:$empty B$
- 5操作:$pour B A$ 意为将$B$中水倒到$A$中(直到$A$满或者$B$中水没有剩余)
- 6操作:$pour A B$
接下来$a_i$个数字,表示各种操作:
- 1操作:$fill A$ 意为给$A$灌满水
- 2操作:$fill B$
- 3操作:$empty A$ 意为将$A$中水倒空
- 4操作:$empty B$
- 5操作:$pour B A$ 意为将$B$中水倒到$A$中(直到$A$满或者$B$中水没有剩余)
- 6操作:$pour A B$
输入输出样例
输入 #1
2 3 5 4 5 7 3
输出 #1
6 2 5 3 5 2 5 6 1 6 1 6 4 6
输入 #2
1 26 29 11
输出 #2
22 1 6 1 6 4 6 1 6 4 6 1 6 4 6 1 6 4 6 1 6 4 6
开启了spj。
如果你的方案比答案优,会提示UKE,此时请联系管理员修改数据。
如果你的方案比答案差,分数会相应减损。
如果你的方案比答案优,会提示UKE,此时请联系管理员修改数据。
如果你的方案比答案差,分数会相应减损。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted