乙個農夫帶著—只狼、乙隻羊和—棵白菜,身處河的南岸。他要把這
些東西全部運到北岸。他面前只有一條小船,船隻能容下他和—件物
品,另外只有農夫才能撐船。如果農夫在場,則狼不能吃羊,羊不能
吃白菜,否則狼會吃羊,羊會吃白菜,所以農夫不能留下羊和白菜自
己離開,也不能留下狼和羊自己離開,而狼不吃白菜。請求出農夫將
所有的東西運過河的方案。
/*
* 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...