拼图游戏即在任意一个N*N(N>1)的拼圖中会把一张完整的图片裁切成N*N块,去掉尾部一块然后打乱顺序,通过调换空格块与邻块的位置来还原图片为了方便计算,我们规萣右下角最后一块图片为空用0代替,其余每一块图片用从1~N*N-1的数字来表示我们简单示范一下数字拼图的操作吧。
可以通过0与其他数字横豎交换得到新的拼图
中间可进行无限次0与其他数字的交换我们最终需要将整张图还原为
我们需要做的就是计算数字拼图还原。是计算还原所需最小的步数吗当然不是,那对于现在的你们来说还有点困难我们就从简单的开始吧。首先为了简化操作可以将规定2<=N<=4
问:任意給一个N*N数字矩阵,能否证明:经过无限次的交换一定能到达目标矩阵或者经过无限的交换也不能实现目标矩阵?如果能输出YES如果不能輸出NO。
第一行输出N接下来为(0~N*N-1)的数字矩阵。同行数字间保证有一空格我们保证一开始0在右下角,且数字符合要求N为0结束。
本题有兩种解题思路一种可以采用模拟解法,将整个过程模拟下来得出***另外还可以根据线性代数的逆序数思维求解更简洁。
用:把矩阵按照从左到右从上到下顺序依次排列然后查找逆序数是偶数还是奇数,依据逆序数的奇偶性来判断能否还原