有N堆火柴,每次可以从任意堆拿出任意数量的火柴,谁拿走最后的谁就win,
我没有办法证明算法的正确性,用异或可以解决此类问题。
Source Code
Problem: 2234 | User: Cathy11 | |
Memory: 172K | Time: 0MS | |
Language: C++ | Result: Accepted |
- Source Code
#include<algorithm> #include<iostream> #include<stdio.h> int main() { long pile[22]; int m,i; while(scanf("%d",&m)==1) { memset(pile,0,sizeof(pile)); for(i=0;i<m;i++) scanf("%ld",&pile[i]); for(i=1;i<m;i++) pile[i]=pile[i-1]^pile[i]; if(pile[m-1]) printf("Yes/n"); else printf("No/n"); } return 0; }