#include
#include
#include
#include
using
namespace
std;
const
int max = 10;
int best[max][max]; //機械人位置
int m, n; //矩陣為 m * n
int bestk; //機械人個數
int dx = ; //原位置及四個方向
int dy = ;
void print(int a[max][max])
}class node
//機械人個數小的先出佇列
bool
operator
< (const node &node) const
};priority_queueq;
template
void copy2(type src[max][max], type des[max][max])
//在i, j位置設定乙個機械人,並改變周圍陳列室受監視的狀態
//向優先佇列中加入結點
void change(node enode, int i, int j)
while(now.board[now.i][now.j] && now.i<=n)
}q.push(now);
}void search()
}for(a=0; a<=m+1; a++) //最外圈一層為1
C 世界名畫陳列演算法
using system using system.collections.generic using system.linq using system.text namespace 5 hou 0,1 7 hou 0,0 1 hou 0,2 1 hou 1,1 1 for int i 0 i n ...
世界名畫陳列館問題
世界名畫陳列館問題 世界名畫陳列館由m n m times n m n個排列成矩形陣列的陳列室組成。為了防止名畫被盜,需要在陳列室中設定機械人哨位。每個警衛機械人除了監視它所在的陳列室外,還可以監視與它所在的陳列室相鄰的上下左右四個陳列室。試設計乙個安排警衛機械人哨位的演算法,使名畫陳列館中每乙個陳...
世界名畫陳列館問題
世界名畫陳列館問題 回溯法 此為 計算機演算法設計與分析 第5版 王曉東 中習題作業 1.陣列界線沒有考慮清楚,出現越界 在change和restore只考慮i 1和j 1有沒有出界,忘了考慮i 1和j 1有沒有出界 2.找到未被監視的陳列館迴圈中,對最後乙個房間 m 1,n 1 考慮不足,最終改為...