1. 程式人生 > >POJ 2484 - A Funny Game(博弈)

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