time limit: 10 sec memory limit: 162 mb
submit: 3229 solved: 1908
[submit][status][discuss]
description
在乙個5×5的棋盤上有12個白色的騎士和12個黑色的騎士, 且有乙個空位。在任何時候乙個騎士都能按照騎士的走法(它可以走到和它橫座標相差為1,縱座標相差為2或者橫座標相差為2,縱座標相差為1的格仔)移動到空位上。 給定乙個初始的棋盤,怎樣才能經過移動變成如下目標棋盤: 為了體現出騎士精神,他們必須以最少的步數完成任務。
第一行有乙個正整數t(t<=10),表示一共有n組資料。接下來有t個5×5的矩陣,0表示白色騎士,1表示黑色騎
士,*表示空位。兩組資料之間沒有空行。
output
對於每組資料都輸出一行。如果能在15步以內(包括15步)到達目標狀態,則輸出步數,否則輸出-1。
sample input
01*11
110*1
sample output
-1
看資料範圍不大,a*搜尋,估價函式為剩餘沒有到達的騎士的個數。
#include
using
namespace
std;
//const int maxn =
int ans=16;
int t,n,a[10][10];
int xx[8]=,
yy[8]=;
int win[5][5]=;
inline
int jud()
return sum;
}inline
void dfs(int x,int y,int prex,int prey,int cnt)
if(kk+cnt>ans) return;
for(int k=0;k<=7;k++)
}}int main()
// cout<
}dfs(sti,stj,0,0,0);
if(ans>15) cout
<
cout
0;}
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的格仔 移動到空位上。給定乙個初始的棋盤,怎樣才能經過移動變成如下目標棋盤 為了體現出騎士精神,他們必須以最少的...