假设三只母鸡A、B、C三只小鸡a、b、c(a 小鸡会划船)
a,b->b(a小鸡划回去)一只小鸡没事
a,A->b、a(A母鸡划回去)两只小鸡没事
A,B->B、b(A母鸡带a小鸡回去)B母鸡与b小鸡没事
A,C->B、b、C(A母鸡划回去)B、C母鸡与b小鸡没事
A,a->A、B、C、b(a小鸡划回去)A、B、C母鸡与b小鸡没事
a,c->A、B、C、a、b、c
OK
a,b->b(a小鸡划回去)一只小鸡没事
a,A->b、a(A母鸡划回去)两只小鸡没事
A,B->B、b(A母鸡带a小鸡回去)B母鸡与b小鸡没事
A,C->B、b、C(A母鸡划回去)B、C母鸡与b小鸡没事
A,a->A、B、C、b(a小鸡划回去)A、B、C母鸡与b小鸡没事
a,c->A、B、C、a、b、c
OK
显然不对,第二步就不行了。A kill b at west
再说,楼主要求的是算法,不是解。我的思路是用回溯,但是多步回溯时,还没有办法。
想想确实很简单,我下笔时才发现有点难度。
A,C,a,c || B,b!
A,B,C,a,c! || b
A,B,C || a,b,c!
A,B,C,a! || b,c
A,a || B,C,b,c!
A,B,a,b! || C,c
B,b || A,C,a,c!
B,C,b,c! || A,a
b,c || A,B,C,a!
a,b,c! || A,B,C
c || A,B,C,a,b!
C,c! || A,B,a,b
|| A,B,C,a,b,c!
A母鸡不上岸 ,怎么可能杀死b小鸡呢,
这种题目你是不是没做过啊,要杀死是指同在岸上,或者同在船上,
要是你这种看法的话,永远不可能有答案的,呵呵
(小鸡1,小鸡2,小鸡3,母鸡1,母鸡2,母鸡3) 0表示在西岸 1表示东岸
小鸡1会划床
(a,b,c,A,B,C)
1. (0,b,c,0,B,C)---(1,b,c,1,B,C)
等等很多状态
把这些状态一一列出来 最后用用状态空间树展开 在用深度优先搜索或宽度搜索!自己想想吧!