【算法】棋盘游戏(game)解题报告

来源:互联网 发布:淘宝订单价格什么字体 编辑:程序博客网 时间:2024/05/17 01:06

棋盘游戏(game)

源程序名       game.???  (pas,c,cpp)

可执行文件名   game.exe

输入文件名     game.in

输出文件名     game.out

时限           2s

在一个4*4的棋盘上有8个黑棋和8个白棋,当且仅当两个格子有公共边,这两个格子上的棋是相邻的。移动棋子的规则是交换相邻两个棋子。现在给出一个初始棋盘和一个最终棋盘,要求你找出一个最短的移动序列使初始棋盘变为最终棋盘。

Klux说:“这么简单的题目,我都会做!”

 

输入:

第1到4行每行四个数字(1或者0),描述了初始棋盘

接着是一个空行

第6到9行每行四个数字,描述了最终棋盘

输出:

输出文件的第一行是一个整数n,表示最少的移动步数。

接下来n行每行4个数,r1,c1,r2,c2,表示移动的两个棋子的坐标(r1,c1),(r2,c2)(棋盘左上角的坐标为(1,1),并且他右边的格子为(1,2))

如果有许多组解,你可以输出任意一组。

 

样例:

game.in:

1111

0000

1110

0010

 

1010

0101

1010

0101

 

game.out

4

1 2 2 2

1 4 2 4

3 2 4 2

4 3 4 4

 

说明:

翻译自ceoi99-game,数据及解答由ceoi提供。

 

本题应该用双向的广度搜索

 


0 0
原创粉丝点击