其他分享
首页 > 其他分享> > 石子游戏 II

石子游戏 II

作者:互联网

石子游戏 II

\(Alice\) 和 \(Bob\) 正在玩一个关于石头的游戏。

共有 \(n\) 堆石头,其中第 \(i\) 堆最初含有 \(a_i\) 个石子。

他们轮流执行下列操作之一,从 \(Alice\) 开始。

不能执行任何操作的人将输掉游戏。

假设 \(Alice\) 和 \(Bob\) 都足够聪明,你知道谁会赢得游戏吗?

输入格式

第一行包含一个整数 \(n\) (\(1\leq n \leq 10^6\))

第二行包含 \(n\) 个正整数 \(a_1,\dots,a_n\) (\(1\leq a_1,\dots,a_n \leq 10^9\))

输出格式

AliceBob,表示最终赢家

样例输入

2
2 2

样例输出

Alice

题目分析

ans为操作次数结果。

ans=(偶数数量-1)+奇数数量

奇数数量分解成非1的奇数,会贡献两次ans,不影响取模结果,因此把奇数分解到偶数上即可。

#include<bits/stdc++.h>
using namespace std ;
int main() {
	int n, ans=0,even=0;
	scanf("%d",&n);
	int t;
	while(n--) {
		scanf("%d" ,&t) ;
		if(t==1) continue ;
		even++;
		ans+=t%2;
	}
	ans+=even;
	if(even) 
		ans--;
	if(ans%2) 
		printf("Alice");
	else printf("Bob");
}

标签:even,游戏,奇数,石子,Alice,II,leq,ans,Bob
来源: https://www.cnblogs.com/zhaohanzheng/p/16166960.html