原文链接: 使用dfs求解修道士和野人问题
上一篇: js Set 的使用
下一篇: VMware 挂载U盘
1、问题描述 :这是一个古典问题.假设有n个道士和n个野人准备渡河.但只有一条能容纳c人的小船,为了防止野人侵犯修道士,要求无论在何处,修道士的个数不得少于野人的个数(除非修道士个数为0).如果两种人都回会划船,设计一个算法,确定他们能否过河.若能,则给出小船来回次数最少的最佳方案.
使用三元组表示左岸的状态(x,y,z)分别表示左岸的道士人数,野人人数,和船在哪一边0左1右
根据船的位置,该三元组可以生成新的不同的三元组,注意,船上的人数和右岸的人数也需要满足相关要求,即道士人数为0或者道士数目大于野人 数目
递归搜索,由3 3 0搜索到 0 0 1 即可
let path = []
const N = 3
const C = 2
// 用于存放答案的数组
const ANS = []
function dfs(x, y, z)