POJ 1704 Staircase Nim 阶梯博弈
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int main() { int t,n,ans; int i,j,js; int a[1100]; //int b[1100]; scanf("%d",&t); while(t--) { memset(a,0,sizeof(a)); //memset(b,0,sizeof(b)); ans=0; js=0; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&a[i]); sort(a+1,a+n+1); for(i=n; i>0; i--) { js++; if(js&1)ans^=(a[i]-a[i-1]-1); } if(ans)printf("Georgia will win\n"); else printf("Bob will win\n"); } return 0; }
边界处理还是不明白。