赞
踩
问题提出:
对象:农夫、狼、羊、白菜
目标:农夫想划船 把狼、羊、菜和自己运到河对岸,船比较小,农夫每次只能运一种东西过河
约束条件:如果没有农夫看着,羊会偷吃菜,狼会吃羊
考虑一种方法,让农夫能够安全地安排过河。
解题思路:
实际上这是一个状态转换问题,也许做过这个题的童鞋都能给出一个正确答案,比如:
1)带羊过河
2)农夫单独返回
3)带狼过河
4)带羊返回
5)带菜过河
6)单独返回
7)带羊过河
把这个问题看成一个搜索过程,可以采用两种不同的策略:一种广度优先搜索,另一种深度优先搜索。
深度优先代码:
- /*******************************************************************************
- * 版权所有 (C) linolzhang 2009
- *
- * 文件名称:PassRiver.cpp
- * 内容说明:
- 深度优先算法实现过河问题
- ********
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。