銀河之星 記憶化搜尋 9點染色

2021-06-13 06:10:29 字數 805 閱讀 3090

problem 3 銀河之星(galaxy.cpp/c/pas)

資料組數不超過10.

這題就是記憶化搜尋

9點染色減少狀態,map記憶化

b[i][j][k]表示棋子可否從k方向到(i,j)

#include#include#include#include#include#include#include#includeusing namespace std;

#define maxn (100+10)

#define maxk (10+10)

#define maxdiv (4)

int k,n,m,x2,y2,a[maxdiv][maxdiv],b[maxdiv][maxdiv][9];

int c[8][2]=,,,,,,,}; //↑↓→←↗↙↘↖

maph;

bool is_ok()

bool dfs(int x)

for (int i=1;i<=k;i++)

/*for (int j=3;j;j--)

{ for (int i=1;i<=3;i++)

cout<

銀河之星 (亂搞 記憶化搜尋)

乍一看真的無從下手,規則一臉懵逼。首先看到第3個規則,每個棋子往任意方向都只能走3格。可以聯想一下西洋棋四個象,2個永遠在黑格,2個永遠在白格。依照這個思路,我們只有9類位置 橫座標模3與縱座標模3都相同的位置為同一類 其中,每一類位置上的棋子可以通過規則3互達同一類位置,卻永遠不可能用規則3走到其...

記憶化搜尋

演算法上依然是搜尋的流程,但是搜尋到的一些解用 動態規劃 的那種思想和模式作一些儲存。一般說來,動態規劃總要遍歷所有的狀態,而搜尋可以排除一些無效狀態。更重要的是搜尋還可以剪枝,可能剪去大量不必要的狀態,因此在空間開銷上往往比動態規劃要低很多。記憶化演算法在求解的時候還是按著自頂向下的順序,但是每求...

記憶化搜尋

記憶化搜尋 演算法上依然是搜尋的流程,但是搜尋到的一些解用動態規劃的那種思想和模式作一些儲存。記憶化演算法在求解的時候還是按著自頂向下的順序,但是每求解乙個狀態,就將它的解儲存下來,以後再次遇到這個狀態的時候,就不必重新求解了。例1.題目描述 給從左至右排好隊的小朋友們分糖果,要求 1.每個小朋友都...