*BZOJ3895: 取石子
$t \leq 100$组数据,每次问$n \leq 50$堆石头,每堆$\leq 1000$,每次两人能随便取一颗,或者合并任意两堆非空的,问先手是否必胜。
博弈题还是要手玩找手感……
当然还是可以理论分析一下的,在手玩的基础上发现,没有1颗石子的堆时,每次操作只会使操作数减少一,这里的操作数是$n-1+\sum_{i=1}^{n}a_i$。如果一开始$Alice$的操作数是奇数,她就可以避免对方操作时出现1的堆,一旦对方试图通过1的堆改变胜负,$Alice$立刻将它与其他堆合并。反之$Bob$也能类似地操作,因此这个“操作数”决定了胜负。
还没完,还有1的堆,但现在状态数只有$n*(n*1000)$了,可以大力DP得。
代码?还没写。
还有一篇看不太懂的$O(1)$,道理说得通但不知道怎么想的。。