题目大意:两个壶A和B ,可互相倒水,可加满,可倒空,
输入:Ca Cb N Ca、Cb分别为A B两壶的容量 N为最后B壶所剩水量
输出:操作步骤 pour B A表示从B向A倒水(要么倒满A 要么倒完B) 同理pourA B
最后输出success表示完成
思路:个人感觉做的这几个zoj 全是dfs解决的
我的思路是 每个壶都可以有三个操作 要加满时A(为A壶中所剩的水量)小于Ca 要倒空或向B壶倒水时A大于0.同理B也一样 然后我就用dfs 每次都判断可执行哪个操作
但是若不限制操作步骤会重复某些操作

题目要求通过两个壶A和B的相互倒水操作,达到B壶特定剩余水量。使用深度优先搜索(DFS)解决,每个壶可以加满、倒空或互相倒水。虽然不限制操作步骤,但限制操作不超过100步以避免无限循环。解法并不需要最优解,只需找出可行方案。一些解题者提到,这个问题可以通过持续将B壶倒入A壶来解决所有情况。
最低0.47元/天 解锁文章
649

被折叠的 条评论
为什么被折叠?



