BZOJ 1085 騎士精神

2021-08-20 17:51:37 字數 1190 閱讀 9577

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