https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1069
思路:
拿两堆石子举例,如果石子不等,那么第一个人必定能构造 n n的情况, 那么无论第二个人拿多少,第一个人下一次仍然保持n n 就一定能胜利。
如果石子相等, 那么第一个人必定破坏n n 的情况 ,第二个人只要反过来重新构造N N 第二个人就会胜利
面对奇异局势,面对者必败。
如果三堆石子: 若有两堆相等一堆不等,那么则在上述情况中胜负情况发生转变。
结论:
如果这些石子不能构成奇异局势 也就是 两两相同那么B必败。
否则B就可以构造奇异局势 N N 让A面对。A必败
#include <iostream>
#include <stdio.h>
using namespace std;
int a[1005];
int main()
{
int n;
cin>>n;
int t ;
int ans;
cin >>ans;
for(int i=2;i<=n;i++)
{
cin>>t;
ans^=t;
}
if(ans==0)
cout<<"B"<<endl;
else
cout<<"A"<<endl;
return 0;
}