本題的思路是使傳教士們所占用的傳教區域重疊,即找出每個傳教士的對角線上還沒被占用的點的數目最少。
**如下:
[cpp]view plain
copy
//from big heart
[cpp]view plain
copy
//傳教士
#include
using
namespace
std;
intfind_min(
inti,
intj);
void
change(
inti,
intj);
inta[20][20];
intn,m;
//4行3列
intmain()
} }
change(i_,j_);
timer++;
min_ = 400;
}while
(iscontinue);
cout<<--timer;
} int
find_min(
inti,
intj),y_[4] = ;
for(
inttimer = 0;timer<4;timer++)
} }
return
count-3;
} void
change(
inti,
intj),y_[4] = ,x,y;
for(
inttimer = 0;timer<4;timer++)
} }
傳教士過河問題
傳教士過河問題是乙個耳熟能詳的問題,也是很多智力遊戲中經常出的題目,但是,我從來都沒有學到乙個解決這類問題的通解。在 人工智慧 課程中學到了,當時覺得這個題目很有意思,作為大四的學生,本來已經對上課沒有什麼興趣了。不過,恰巧,我去上的那幾節課中有這個問題。但是,老師的課件上好像有些問題,我課下想了想...
傳教士野人過河問題
這個問題是人工智慧中經典的搜尋問題,下面用深度優先搜尋演算法來解這個題,示例 如下 include include include using namespace std typedef struct mcnode listfringe 相當於佇列 vectorclosed closed表 判斷是否...
野人傳教士問題 盲目搜尋
從前有一條河,河的左岸有 m個傳教士 missionary 和m 個野人 cannibal 和一艘最多可乘 n人的小船。約定左岸,右岸和船上或者沒有傳教士,或者野人數量少於傳教士,否則野人會把傳教士吃掉。程式設計,接收m和 n,搜尋一條可讓所有的野人和傳教士安全渡到右岸的方案。我們先假設左岸有 3個...