游戏
Description
有一个$1~n$的排列$a$,玩家A和玩家B可以每次指定一个长度为$4x+2$或$4x+3 (x∈N)$ 的区间将其翻转,且一定要保证翻转后序列的字典序变大,最后无法操作的那个人就输了.
现在告诉你谁先手,假设A和B都十分聪明,请问最后是谁赢了
Hint
乍一看是一道数学题/博弈题,想了很久连暴力都不会打……
其实要认真分析
注意到数据特点:没有重复元素,所以对于任意一个数对,它们不是构成顺序对就是构成逆序对,而一次翻转就是把区间的顺序对和逆序对互换,我们同时想到,换到不能再换的时候就是序列顺序对为0的时候.
而长度为$4x+2$或$4x+3 (x∈N)$ 的区间内数对的数量是$\frac {(4x+2)(4x+1)}{2}=8x^2+6x+1$和$\frac {(4x+3)(4x+2)}{2}=8x^2+6x+3$,它们都是奇数.
所以如果指定交换的区间中顺序对数量为奇数则逆序对数量为偶数,反之也成立.
所以翻转一个区间就会导致区间中顺序对数量的奇偶性翻转
而你要顺序对数量变成偶数0,所以你只要判断原序列顺序对数量奇偶性
Code
自行YY(逃~~~