1. 程式人生 > >poj 2484 A Funny Game

poj 2484 A Funny Game

poj spa 是個 data != while code pri urn

題目: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");
        else
            printf("Bob\n");
    }
    return 0;
}


poj 2484 A Funny Game