羊、狼、农夫过河_200分_A卷_回溯/dfs

羊、狼、农夫过河

题目描述:

  羊、狼、农夫都在岸边,当羊的数量小于狼的数量时,狼会攻击羊,农夫则会损失羊。农夫有一艘容量固定的船,能够承载固定数量的动物。
  要求求出不损失羊情况下将全部羊和狼运到对岸需要的最小次数。只计算农夫去对岸的次数,回程时农夫不会运送羊和狼。
  备注: 农夫在或农夫离开后羊的数量大于狼的数量时狼不会攻击羊。 农夫自身不占用船的容量。

输入输出描述:

输入描述:

  第一行输入为M,N,X,分别代表羊的数量,狼的数量,小船的容量.

输出描述:

  输出不损失羊情况下将全部羊和狼运到对岸需要的最小次数。(若无法满足条件则输出0)

示例1:

输入:
	5 3 3
输出:
	3
说明:第一次运2只狼 第二次运3只羊 第三次运2只羊和1只狼

示例2:

输入:
	5 4 1
输出: 
	0
说明: 如果找不到不损失羊的运送方案,输出0

解题思路:

给出一组M,N,X,会有多种运送方案,多种方案中都是从一开始的M,N,X进行分支的,第一次分支后,每一个子分支的M,N,X又可以有分支。求解的过程可抽象出一棵树来。
类似这种动态的、多分支的,可以使用递归、dfs等技巧来求解&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值