農夫過河問題C 遞迴實現

2021-08-10 21:50:20 字數 1164 閱讀 8372

乙個農夫帶著—只狼、乙隻羊和—棵白菜,身處河的南岸。他要把這

些東西全部運到北岸。他面前只有一條小船,船隻能容下他和—件物

品,另外只有農夫才能撐船。如果農夫在場,則狼不能吃羊,羊不能

吃白菜,否則狼會吃羊,羊會吃白菜,所以農夫不能留下羊和白菜自

己離開,也不能留下狼和羊自己離開,而狼不吃白菜。請求出農夫將

所有的東西運過河的方案。

/*

* farmer cross river with wolf, sheep and cabbage

* depth first search implementation.

* author: prohanziiee

* e-mail: [email protected]

* date: 2017-11-16

*/#include using namespace std;

enum item;

mapfoodchain;

mapreversefoodchain;

setsidea, sideb;

bool check(sets)

return true;

}vectorv;

map>, pair> > trace;

pair> endpath;

bool dfs(int dir, item item, pair> path)

if(check(sideb) == true)

for(int i = 0; i < 3; ++i)

sideb.insert(tmp);

}sideb.erase(item);

} else

sidea.insert(tmp);

}} return false;

}void init()

void outputitem(item item)

}void outputdirection(int dir)

else

}void outputtrace()

}int main()

}sidea.insert(tmp);

}} if(valid == true) else

return 0;

}

c實現農夫過河問題

問題描述 乙個農夫帶著乙隻狼 乙隻羊和一棵白菜,身處河的南岸。他要把這些東西全部運到北岸。問題是他面前只有一條小船,船小到只能容下他和一件物品,另外只有農夫能撐船。另外,因為狼能吃羊,而羊愛吃白菜,所以農夫不能留下羊和白菜或者狼和羊單獨在河的一邊,自己離開。請問農夫該採取什麼方案才能將所有的東西運過...

C 農夫過河問題

農夫過河問題 大家有沒有看過我的c學習中的位算,我們用8位二進位制的數字來表示任務的完成與否,1完成 0未完成 現在我們用4個二進位制數來代表 第一位表示農夫 1 北岸,0 南岸 第二位表示狼 1 北岸,0 南岸 第三位表示?1 北岸,0 南岸 第四位表示白菜 1 北岸,0 南岸 我們怎麼判斷農夫在...

農夫過河問題

題目描述 有乙個農夫帶乙隻羊 一筐菜和乙隻狼過河。如果沒有農夫看管,則狼要吃羊,羊要吃菜。但是船很小,只夠農夫帶一樣東西過河。問農夫該如何解此難題?我的 include include include include include include include using namespace s...