bzoj 1085騎士精神

2022-07-30 14:54:13 字數 992 閱讀 7756

bzoj 1085騎士精神

在乙個5×5的棋盤上有12個白色的騎士和12個黑色的騎士,且有乙個空位。在任何時候乙個騎士都能按照騎士的走法(它可以走到和它橫座標相差為1,縱座標相差為2或者橫座標相差為2,縱座標相差為1的格仔)移動到空位上。給定乙個初始的棋盤,怎樣才能經過移動變成如下目標棋盤:為了體現出騎士精神,他們必須以最少的步數完成任務。

2

10110

01*11

10111

01001

00000

01011

110*1

01110

01010

00100

7

-1

a*演算法

題目鏈結

#include#include#include#includeusing namespace std;

char mp[5][6];

int init[5][5]= ;

int aim[5][5];

int dirx = ;

int diry = ;

int flag = 0,ans = 0;

int cal() //估計接下來需要多少步

void a_star(int x,int y,int deep,int limit)

if(flag)

return ;

for(int i=0; i<8; i++)

if(g+deep <= limit+1)a_star(xx,yy,deep+1,limit);

swap(init[x][y],init[xx][yy]);

}}void solve()

for(int i=0; i<=15; i++)

}if(flag==0)printf("%d\n",-1);

}int main()

bzoj 1085 騎士精神

time limit 10 sec memory limit 162 mb submit 1461 solved 796 submit status discuss 在乙個5 5的棋盤上有12個白色的騎士和12個黑色的騎士,且有乙個空位。在任何時候乙個騎士都能按照騎士的走法 它可以走到和它橫座標相差...

BZOJ 1085 騎士精神 A

description 在乙個5 5的棋盤上有12個白色的騎士和12個黑色的騎士,且有乙個空位。在任何時候乙個騎士都能按照騎士的走法 它可以走到和它橫座標相差為1,縱座標相差為2或者橫座標相差為2,縱座標相差為1的格仔 移動到空位上。給定乙個初始的棋盤,怎樣才能經過移動變成如下目標棋盤 為了體現出騎...

bzoj1085 騎士精神 A

在乙個5 5的棋盤上有12個白色的騎士和12個黑色的騎士,且有乙個空位。在任何時候乙個騎士都能按照騎士的走法 它可以走到和它橫座標相差為1,縱座標相差為2或者橫座標相差為2,縱座標相差為1的格仔 移動到空位上。給定乙個初始的棋盤,怎樣才能經過移動變成如下目標棋盤 為了體現出騎士精神,他們必須以最少的...