取火柴-博弈论

Posted tt香薷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了取火柴-博弈论相关的知识,希望对你有一定的参考价值。

取火柴 (10分)
C时间限制:3000 毫秒 | C内存限制:3000 Kb
题目内容:
有n个火柴棍,两个游戏玩家a和b轮流取,规则是第一次取的人最少取1根,最多取n-1根,随后每人最多只能取对方上一次取的数目

的2倍,最少取1根。谁取到最后一根为胜者。试问先取的人是赢还是输。

输入描述
n
输出描述
1表示胜,0表示输
输入样例
3
输出样例
0

解析:说白了,就是每个人只能取1或者2.(双方都不想因为自己而让对方的选择余地变大)

#include<iostream>
using namespace std;

int main()
{
    int n,ans=1;
    cin>>n;
    if(n%2==0){
        ans=1; 
    }
    else if(n%2==1){
        ans=0;
    }
    cout<<ans<<endl;
    return 0;
}

 

以上是关于取火柴-博弈论的主要内容,如果未能解决你的问题,请参考以下文章

洛谷P1247 取火柴游戏 数学题 博弈论

博弈知识

POJ 2234 Matches Game(取火柴博弈1)

取火柴游戏||Nim博弈

HDU 2509 Be the Winner(取火柴博弈2)

P1247 取火柴游戏