M67的題目 情人迷宮

2021-04-18 18:17:36 字數 1204 閱讀 4431

原題 http://www.matrix67.com/blog/archives/550 乙個廣搜就過了。 合法解:設mm從a出發,gg從b出發 mm->i gg->a mm->h gg->i mm->g gg->h mm->f->l gg->i mm->e->d gg->h->j mm->c gg->k mm->b gg->b

#include #include #include using namespace std;

const int maxint = 1 << 30;

int n;

char vc[12]; //點的顏色

int e[12]; int p[12][3]; char c[12][3]; //鄰接表

const int qsize = 100000;

int q[qsize][5], qf, qr, qn;

int steps[12][12]; //最優化

inline void enqueue(int a, int b, int s, int prva, int prvb)

void dequeue(int &a, int &b, int &s, int &prva, int &prvb)

int main()

fin.close();

for (int i=0; i0)

}else //較劣移動

continue;

//move a

for (int i=0; iif (c[a][i] == vc[b])

enqueue(p[a][i], b, s+1, a, b);

//move b

for (int i=0; iif (c[b][i] == vc[a])

enqueue(a, p[b][i], s+1, a, b);

}system("pause");

return 0;}/*

valentine.txt

12rycrycrycyrr

15a b c

b c r

c d y

d e c

e f r

f g y

g h c

h i r

i a y

h j r

b k y

e l c

f l y

j k c

k l r

*/