題目:http://poj.org/problem?
id=2484
一,題意:
n個硬幣圍成一個圈,Alice與Bob輪流從圈中取硬幣。每次能夠取一枚或者連續的兩枚。
硬幣取走后留下的空位不用填補,空位相隔的兩個硬幣視為不相鄰。Alice第一個開始取。
取走最后一個硬幣的人為勝利者。
二,解析:
該題為一道簡單的博弈。是一道榜樣對手動作的博弈。
先看看該博弈的神秘態 : 當該圈被取掉的硬幣分成兩部分,兩部分硬幣分別全然同樣的時候
是個神秘態,這是先手必敗,由于僅僅要后手榜樣先手在相應的邊取同樣的硬幣則必能取到最后一個硬幣。
所以,在Alice取了硬幣后僅僅要Bob,在圈中取相應的硬幣將硬幣分成全然同樣的部分則BOb必勝。
可是當硬幣數小于等于2是等時Alice能夠一次性取完則Alice必勝。
三。代碼:
#include <iostream>
#include <stdio.h>
using namespace std;
int N;
int main()
{while(scanf("%d",&N)!=EOF && N){if(N<=2)printf("Alice\n");elseprintf("Bob\n");}return 0;
}
?