这周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元素横纵坐标的和是奇偶性不变的,从而把所有的排列分为那个和为奇和和为偶的排列,找到和原图和相等的排列的打乱拼图就可以还原这个拼图。

相关文章:

  • 2021-10-09
  • 2021-09-10
  • 2022-12-23
  • 2021-04-29
  • 2022-03-01
  • 2021-10-29
猜你喜欢
  • 2021-12-09
  • 2021-09-29
  • 2022-12-23
  • 2021-11-30
  • 2021-10-05
  • 2021-11-08
  • 2021-05-15
相关资源
相似解决方案