拼图问题-打乱的图能否还原

这周web作业,做个小小的拼图游戏,想到了随机打乱的拼图能否还原的问题,参考了博文逆序数奇偶性判断。 自己理解如下,
对于一个拼图原来的情况可以简化如下:
1 2 3
4 5 6
7 8 0
以行优先原则排列为123456780
交换0与其他元素x的位置:
B1 S1 x B2 S2 0
其中B1为原来x之前比x大的,S1为原来x之前比x小的,B2,S2类比
因为0最小所以可以不用分类了。
原来的逆序数为B1+S1+1+B2+S2+B1+S2(这里只考虑将会改变的部分)
后来的为B1+B2+B1+ S1
差为2S2+1为奇数,说明每交换一次位置奇偶性改变一次。而0元素没相邻交换一次横纵坐标的和改变奇偶性,所以原图在若干次0元素相邻交换后逆序数加上0元素横纵坐标的和是奇偶性不变的,从而把所有的排列分为那个和为奇和和为偶的排列,找到和原图和相等的排列的打乱拼图就可以还原这个拼图。

原文地址:https://www.cnblogs.com/eggplant-is-me/p/6720108.html