description
在乙個5×5的棋盤上有12個白色的騎士和12個黑色的騎士, 且有乙個空位。在任何時候乙個騎士都能按照騎士的走法(它可以走到和它橫座標相差為1,縱座標相差為2或者橫座標相差為2,縱座標相差為1的格仔)移動到空位上。
給定乙個初始的棋盤,怎樣才能經過移動變成如下目標棋盤: 為了體現出騎士精神,他們必須以最少的步數完成任務。
input
第一行有乙個正整數t(t<=10) 表示一共有t組資料 接下來有t個5*5的矩形。0表示白色騎士1表示黑色騎士,*表示空位。(每組資料間有空行)
output
對每組資料都輸出一行。如果能在15不以內(包括15)到達目標狀態,則輸出步數,否則輸出「-1」沒有引號。
#include#include#includeusing namespace std;
char map1[5][5];
int dx[8]=;
int dy[8]=;
int ans[5][5]=;
int ans1;
int map[5][5];
int judge()
}return 1;
}int fun(int now,int end)
}if((count+now)>end)
return 0;
else
return 1;
}void dfs(int nowx,int nowy,int now,int end)
}for(int i=0;i<8;i++)
}}int main()
else
map[i][j]=map1[i][j]-'0';}}
int i;
for(i=1;i<=15;i++)
}if(i==16)
printf("-1\n");}}
}
bzoj 1085 騎士精神
time limit 10 sec memory limit 162 mb submit 1461 solved 796 submit status discuss 在乙個5 5的棋盤上有12個白色的騎士和12個黑色的騎士,且有乙個空位。在任何時候乙個騎士都能按照騎士的走法 它可以走到和它橫座標相差...
bzoj1085 騎士精神 A
在乙個5 5的棋盤上有12個白色的騎士和12個黑色的騎士,且有乙個空位。在任何時候乙個騎士都能按照騎士的走法 它可以走到和它橫座標相差為1,縱座標相差為2或者橫座標相差為2,縱座標相差為1的格仔 移動到空位上。給定乙個初始的棋盤,怎樣才能經過移動變成如下目標棋盤 為了體現出騎士精神,他們必須以最少的...
BZOJ 1085 騎士精神
time limit 10 sec memory limit 162 mb submit 3229 solved 1908 submit status discuss description 在乙個5 5的棋盤上有12個白色的騎士和12個黑色的騎士,且有乙個空位。在任何時候乙個騎士都能按照騎士的走法...