POJ 2484 - A Funny Game(博弈)

题目链接 https://cn.vjudge.net/problem/POJ-2484

【题意】
n枚硬币围成一圈,Alice和Bob轮流取,每次取一枚或连续的两枚。硬币取走之后留下空位,相隔空位的硬币是不连续的。Alice先取,取走最后一枚硬币的一方获胜。输入n,当双方都采取最优策略时,谁会获胜?

【思路】
当n<=2时,Alice可以一次拿完获胜。当n>2时,Alice只能现将硬币变成一条链,Bob可以通过拿走一枚或两枚把这一条链切成两段长度相同的链。接下来,无论Alice怎样操作,Bob都可以做出和Alice一样的动作,所以Bob必胜。

#include<cstdio>

int main(){
	int n;
	while(scanf("%d",&n)==1 && n){
		if(n<=2) puts("Alice");
		else puts("Bob");
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/xiao_k666/article/details/84594797