ZOJ--1005:Jugs(dfs)

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

题目大意:两个壶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 每次都判断可执行哪个操作 

但是若不限制操作步骤会重复某些操作哭  像加满在倒空再加满再到空....这个题也没要求求最优解 所以只要可以得出最后结果就好 为了可以适用于较大数值用例 我限制操作步数为100 所以每次不管多简单的都会重复知道100步 .....

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值