POJ2484 A Funny Game(博弈)

March 07, 2016

题目链接

题意:n 个硬币围成一圈,每人一次可以拿一个或者相邻的两个,最后一个拿的人获胜。

n>3 时,后手一定获胜,因为他只要按照先手拿的对称着拿就可以,很经典的博弈题。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<string>
using namespace std;

int main() {
    //freopen("a.txt", "r", stdin);
    int n;
    while(cin>>n && n){
        if(n<3) cout <<"Alice"<< endl;
        else cout << "Bob" << endl;
    }
    return 0;
}

Profile picture

Written by Armin Li , a venture capitalist. [Weibo] [Subscribe]