NIM博弈的必胜取法
#include<stdio.h> const int Max = 100000; int a[Max]; int main() { int i,n,ans; int tmp; while(scanf("%d",&n)!=EOF) { ans=0; for(i=0;i<n;i++) { scanf("%d",&a[i]); ans^=a[i]; } for(i=0;i<n;i++) { tmp=ans^a[i]; if(tmp<=a[i]) { a[i]=tmp; break; } } for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); } return 0; }