UESTC Training for Search Algorithm——E
2012-05-20 01:20
295 查看
棋盘游戏
1、棋盘上有且仅有一个出口
2、开始时没有哪个棋子在出口,而且所有棋子都不相邻(这里的相邻是指上下左右四个方向)
3、M个棋子分别记为1到M
4、每个时刻你可以移动一个棋子向它相邻的四个格子移动一步
5、你需要保证任意时刻棋盘上所有棋子都不相邻
6、只有当前棋盘上编号最小的棋子移动到出口时才能取走改棋子。
7、所有棋子都移走的时候游戏结束
对于一个给定的游戏局面,昀昀最少要多少步才能结束这个游戏呢?
对于每一组数据,第一行是两个整数N,M,其中2<=N<=6,1<=M<=4。
接下来是一个N*N的棋盘,其中'o'代表空格子,'x'代表出口,其余的1到M代表这M个棋子。
保证数据是合法的。
3 2
x2o
ooo
oo1
3 3
xo1
o2o
3oo
-1
Description
最近昀昀学习到了一种新的棋盘游戏,这是一个在一个N*N的格子棋盘上去搞M个棋子的游戏,游戏的规则有下列几条:1、棋盘上有且仅有一个出口
2、开始时没有哪个棋子在出口,而且所有棋子都不相邻(这里的相邻是指上下左右四个方向)
3、M个棋子分别记为1到M
4、每个时刻你可以移动一个棋子向它相邻的四个格子移动一步
5、你需要保证任意时刻棋盘上所有棋子都不相邻
6、只有当前棋盘上编号最小的棋子移动到出口时才能取走改棋子。
7、所有棋子都移走的时候游戏结束
对于一个给定的游戏局面,昀昀最少要多少步才能结束这个游戏呢?
Input
第一行有一个整数T,(T<=200),表示测试数据的组数。对于每一组数据,第一行是两个整数N,M,其中2<=N<=6,1<=M<=4。
接下来是一个N*N的棋盘,其中'o'代表空格子,'x'代表出口,其余的1到M代表这M个棋子。
保证数据是合法的。
Output
对于每一组数据输出最少步数,如果无解输出-1。Sample Input
23 2
x2o
ooo
oo1
3 3
xo1
o2o
3oo
Sample Output
7-1
算法思想: 用DFS的A*搜索,估值函数是每个棋子与出口的曼哈顿距离,满足可接纳性。每次BFS时按照代价 由小到大的搜索,每次移动一枚棋子时判断是否可以移动,如果不能,移动它周围的。还是用一 个状态数组保存真实的状态,真实的状态的hash值可以用一个二进制数表示,棋盘上某个地方有 棋子就设为1,没有就为0,然后再给他转化成10进制数。BFS中用到的队列中的每个元素的属性应 该有三个:状态hash成的二进制数对应的十进制数,走到这个状态花费的步数,还有就是此状态 下棋子上的数字最小的元素所在的位子(还是十进制数,点(x,y)可以给他化成 pos=x*行号+y 这 个十进制数) CODE: 最近各种作业缠身,又是电子实验软件仿真,又是英语课上老师要求的小演讲,还有堆了近一个月的作业, 各种实验报告堆积,实在是抽不出时间了,也没有验证上面的算法的正确性,具体的细节肯定还有问题 ,CODE就没有了,下次一定写了
相关文章推荐
- 2016 UESTC Training for Search Algorithm & String H - 中二少女与字符串 Trie 字典树
- 2014 UESTC Training for Search Algorithm Problem F 方老师与迷宫
- UESTC Training for Search Algorithm——B
- UESTC_Palindromic String 2015 UESTC Training for Search Algorithm & String<Problem M>
- 2016 UESTC Training for Search Algorithm & String I - 谭爷剪花布条 KMP
- UESTC Training for Search Algorithm——C
- UESTC_王之迷宫 2015 UESTC Training for Search Algorithm & String<Problem A>
- UESTC_韩爷的梦 2015 UESTC Training for Search Algorithm & String<Problem N>
- 2016 UESTC Training for Search Algorithm & String K - 卿大爷的三个女友 KMP、跳转数组
- 2016 UESTC Training for Search Algorithm & String(A B C E I K)
- UESTC Training for Search Algorithm——D
- UESTC_邱老师降临小行星 2015 UESTC Training for Search Algorithm & String<Problem B>
- UESTC Training for Search Algorithm——F
- UESTC Training for Search Algorithm——G
- UESTC_基爷与加法等式 2015 UESTC Training for Search Algorithm & String<Problem C>
- 2015 UESTC Training for Search Algorithm & String - J - 全都是秋实大哥 【KMP】
- UESTC Training for Search Algorithm——H
- UESTC_基爷的中位数 2015 UESTC Training for Search Algorithm & String<Problem D>
- 2014 UESTC Training for Search Algorithm B
- UESTC Training for Search Algorithm——I