HDU 3032 Nim or not Nim?

/*

g(0)=0,g(1)=1。

状态2的后继有0,1和(1,1),它们的SG函数值分别是0,1和0,

所以g(2)=2。状态3的后继有0,1,2和(1,2),它们的SG函数

值分别是0,1,2和3,所以g(3)=4。

状态4的后继有0,1,2,3,(1,3)和(2,2),它们的SG函数

值分别是0,1,2,4,5和0,所以g(4)=3。我们推测:对于所有

的k>=0,有g(4k+1)=4k+1;g(4k+2)=4k+2;g(4k+3)=4k+4;g(4k+4)=4k+3。

*/



#include <stdio.h>



int main()

{

    int T;

    scanf("%d", &T);

    while(T --)

    {

        int n, ans = 0, m;

        scanf("%d", &n);

        while(n --)

        {

            scanf("%d", &m);

            if(m % 4 == 0) ans ^= (m - 1);

            else if(m % 4 == 3) ans ^= (m + 1);

            else ans ^= m;

        }

        if(ans == 0) puts("Bob");

        else puts("Alice");

    }

    return 0;

}

你可能感兴趣的:(HDU)