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;
}