描述
`
现在给定你两个数字a和b,代表两个罐子的容量,再给你一个数V,代表盘子上标着的数字,你可以向罐子里倒水将罐子里的水倒空,将一个罐子里的水倒到另一个罐子里,最终,输出你操作的步骤(fill A代表装满A罐子,empty A代表倒空A罐子,pour A B代表将A罐子里的水倒进B罐子,以此类推 )
例子
输入:3 5 4
输出:
fill B
pour B A
empty A
pour B A
fill B
pour B A
success
二、使用步骤
代码如下(示例):
class State:
def __init__(self,Na,Nb,prev,opre) -> None:
self.Na=Na # 杯子A现有的水的体积
self.Nb=Nb # 杯子B现有的水的体积
self.prev=prev #上一遍历的节点
self.opre=opre #操作步骤
#visted 记录当前节点是否被访问,默认都没有被访问过
visted = [[False for i in range(1001)] for j in range(1001)]
# BFS处理,Va:杯子A的容积,Vb;杯子B的容积,C :所需水的体积
def BFS(Va,Vb,C):
#记录访问的每一个节点
q=[]
#把第一个节点设置为已访问
visted[0