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的格仔 移動到空位上。給定乙個初始的棋盤,怎樣才能經過移動變成如下目標棋盤 為了體現出騎士精神,他們必須以最少的...