bzoj 4975: [Lydsy1708月赛]区间翻转【博弈论】

必败状态是倒序排列,也就是正序对为0
然后发现,每次翻转都是有奇数个数对(\( C_{4x+2}^{2} C_{4x+3}^{2} \) 都是奇数),所以每次翻转丢回改变正反数对的奇偶性
又因为偶数为必败状态,所以顺序对为奇数则必胜

#include<iostream>
#include<cstdio>
using namespace std;
int n,a[55],ans;
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;++i)
	{
        scanf("%d",&a[i]);
        for(int j=1;j<i;++j)
            if(a[j]<a[i])
				ans^=1;
    }   
    ans?puts("Q"):puts("T");
    return 0;
}
posted @ 2018-12-04 08:24  lokiii  阅读(169)  评论(0编辑  收藏  举报