石子


解题思路
这道题其实挺有趣的。
我们看看小A和小B分别能对奇数堆或偶数堆的石子做出什么改变:
| 奇数 | 偶数 | |
|---|---|---|
| 小A | 奇数 | 0 |
| 小B | 0 | 奇数 |
可以看到,因为小A和小B都是绝顶聪明的,所以他们不会给对手留下更多的机会。而小A是无法对奇数进行性质改变的,所以只要小B一直讲偶数堆的石子取成1,那么小A就永远无法获胜。当然,如果只有一堆石子且石子个数为偶数的话,小A还是有机会滴。
code
#include<iostream>
#include<cstdio>
#define ll long long
using namespace std;
ll n,a,ok=1;
int main()
{
while(cin>>n)
{
if(n==1)
{
cin>>a;
if(a%2==0)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
else
{
for(int i=1;i<=n;i++)
scanf("%lld",&a);
cout<<"NO"<<endl;
}
}
}
本文介绍了一种通过分析石子堆数量与奇偶性来判断玩家胜负策略的方法。当有多堆石子时,无论初始状态如何,先手玩家都无法取胜;若只有一堆石子且数量为偶数,则先手玩家有机会赢。
490

被折叠的 条评论
为什么被折叠?



