给定2 个4*4 方格阵列组成的图形A 和B,每个方格的颜色为黑色或白色。方格阵列中有公共边的方格称为相邻方格。图形变换问题的每一步变换可以交换相邻方格的颜色。试设计一个算法,计算最少需要多少步变换,才能将图形A变换为图形B。
图形A 图形B
图6-7 图形变换问题
对于给定的2 个方格阵列,计算将图形A变换为图形B的最少变换次数。
输入数据前4 行是图形A 的方格阵列,后4 行是图形B 的方格阵列。0 表示白色,1表示黑色。
将计算出的最少变换次数和相应的变换序列输出。第1 行是最少变换次数。从第2 行开始,每行用4 个数表示一次变换。例如,1112 表示交换方格(1,1)和(1,2)的颜色。问题无解时输出“No solution!”
1010 0100 0010 1010 0110 0001 0010 1010
3 1112 2223 2324