hdu 3389 Game (阶梯博弈)
#include<stdio.h> int main() { int t,n,ans; int i,j,x; scanf("%d",&t); for(j=1;j<=t;j++) { scanf("%d",&n); ans=0; for(i=1;i<=n;i++) { scanf("%d",&x); if(i%6==0||i%6==2||i%6==5) { ans^=x; } } printf("Case %d: ",j); if(ans)printf("Alice\n"); else printf("Bob\n"); } return 0; }
分析:
题意抽象出阶梯博弈,相当于%6的余数之间在相互转换,关系如下:
3->0 0->3
1->2 2->1
4->5 5->4
而且分析(多写几组转移)得 cards全都倒1,3,4为终止状态
由阶梯博弈的性质,奇数步到终止状态的cards,想打昂与Nim博弈